단어 10개를 입력받아 쭉 출력하는 프로그램인데요..
찬늘봄
질문 제목 : 단어 10개를 입력받아 쭉 출력하는 프로그램인데요..질문 내용 :
#include stdio.h
#include string.h
int main()
{
char* a[10];
int i;
char** b[10]={null};
for(i=0;i10;i++)
{
printf(%d번째? \n, i+1);
scanf(%s, &a[i]);
b[i] = &a[i];
}
for(i=0;i10;i++)
{
printf(%s , b[i]);
}
return 0;
}
이렇게 코드를 짜니까 되더라구요. 그런데..
#include stdio.h
#include string.h
int main()
{
char a[10]; ----* 없애고
int i;
char* b[10]={null}; ----* 한개없애고
for(i=0;i10;i++)
{
printf(%d번째? \n, i+1);
scanf(%s, &a[i]);
b[i] = &a[i];
}
for(i=0;i10;i++)
{
printf(%s , b[i]);
}
return 0;
}
아래와 같이 짜니까 값이 이상하게 나오네요. 어차피 첫회전때 &a[0]에 문자값 입력받고 b[0]배열로 옮기는건데.. 밑에껀 왜안되는걸까요?
-
덕이
밑에 있는 a[i]는 문자하나입니다. 입력형식도 잘못된것같습니다.문자는 %c로 받습니다.
b[i]에 각 문자에 대한 주소을 넣고 있습니다.
주소을 문자열로 출력하고 있습니다.
따라서 잘못하고 있는겁니다.