코드
struct
{
int* a;
int* b;
int* c;
} a = {0, 0, (int*)1};
printf("%d, %d, %d\n", a.c, a, a.c);
결과
1, 0, 0
a.c와 a와 다시 a.c의 내용을 출력하는 예제이다. 분명 코드 상으로도 첫 번째 파라미터와 세 번째 파라미터는 모두 a.c로 동일하다. 그런데 결과는 1과 0으로 서로 다르게 나왔다.
아마도 쉽게 실수 할 수 있는 부분으로 생각되는데, 실수 하기는 쉬운데 반해 그 실수를 찾는데는 굉장히 힘들게 될지도 모르겠다.
Posted by 안영기