이 소스좀 봐주세여 이상하게 안되네~
#include<stdio.h>
int main()
{
struct TEMP{
char *p;
}aa[2];
int ch;
int i=0;
char temp[10]="abcdefg";
aa[0].p=temp;
for(i=0;i<10;i++) temp[i]='\0';
i=0;
while((ch=getchar())!=10)
{
temp[i++]=ch;
}
aa[1].p=temp;
printf("%s\n",aa[0].p);
printf("%s\n",aa[1].p);
return 0;
}
------실행결과-------------
#gcc c.c -o a
#./a
1234 //입력값 입력
abcdefg //aa[0].p 값 출력
1234 //aa[1].p 값 출력
----------------------------
이렇게 나와야 되는데
이렇게 출력되더군요
-----------------------------
#gcc c.c -o a
#./a
1234 //입력값 입력
1234 //aa[0].p 값 출력
1234 //aa[1].p 값 출력
------------------------------
scanf로는 의도한데로 출력이되는데
getchar로 하니깐 자꾸 엉뚱하게 출력되네요
고수님들 해결방법좀 알려주세요~
현재 aa[0].p 와 aa[1].p 는 같은 버퍼공간인 temp[10]
현재 aa[0].p 와 aa[1].p 는 같은 버퍼공간인 temp[10] 을 가리키고 있습니다.
그래서, 두 변수의 출력값은 같게됩니다.
삽질의 대마왕...
아하~~ 감사합니다~^^
아하~~ 감사합니다~^^
댓글 달기