배열 포인터 등 질문
횃불
어떤분이 질문을 남기셔서 답변하려고 소스 작성해봤는데저도 못풀겠네여;;문제는 대충char형 포인터변수 배열 str 은 0 으로 초기화 시키고배열의 크기[최대 길이] 를 입력받고함수에서 배열의 요소인 문자 하나하나를 str[i] 에 입력받게 합니다그리고 str 을 main 함수에서 출력시킵니다.인데요 문자열의 최대길이를 입력하고 엔터를 누르면 문자열을 입력하세요 : 라는 문구가 출력되고오류가 발생하며 종료됩니다#include stdio.h
#include string.h
char func(int, char *);
int main()
{
int maxnum;
char *str[]={0};
printf(문자열의 최대 길이 입력 : );
scanf(%d, &maxnum);
func(maxnum, *str);
printf(입력된 문자열 : %s\n, str);
}
char func(int maxn,char *str)
{
int i;
printf(문자를 입력하세요 : );
for(i=0; imaxn; i++){
scanf(%c, str[i]); }
return *str;
}
-
MyWay
네엡 ㅎㅎ
-
가이
아니에요 ㅎㅎ
제가 오후에 프로그래밍 할거같은데 제가 다시
소스 작성해보겠습니다 -
민혁
아 제가 직접 디버그를 해 보니 func함수의 scanf(\%c\
-
드리
그건 직접적으로 초기화를 해줘서이고요 일단 해보세요 scanf는 초기화해주는게 아니라 사용자에게 입력받아서 대입하는겁니다
-
접시
int i;
for(i=0; i5; i++){
수행할 문장;}
for문의 예제인데요
이경우에도 int 형 변수 i 를 선언했지만 i를 초기화해주지 않았습니다.
하지만 for 문이 실행될 때 i=0 이라는 문장이 있어서 i=0으로 초기화되므로
아무런 오류가 없이 잘 구동됩니다.
이와같이 scanf 함수를 사용할 때 maxnum 의 값을 초기화 해주기 때문에 오류가 나진 않을꺼에요 -
일진오빠
말고 int maxum = 0; 이렇게 초기화하는것을 저는 말한건데요 ㅎㅎ
-
꽃달
int maxnum;
printf(\문자열의 최대 길이 입력 : \);
scanf(\%d\ -
루다
maxnum이 초기화가 안된 거 같은데요 ㅎㅎ
-
중국드립
구동 시키고 5개의 문자요소를 갖고잇다고 하려고
5를 입력하고 엔터를 누르면
문자를 입력하세요:
하고 작동이 중지됩니다 -
뿌닝
뭐라고 오류가 뜨나요?