가 집에오는 버스에서 곰곰히생각해봣다


typedef struct _a {

int data1;

int data2;

}a;


a *A,*B;

A = (a*)malloc(sizeof(a));

A-> A- gt;>

B = A;

printf("%d\n",B->data1);


A는 1000~1003 영역에할당됫고 B는 2000~2003 영역에할당됫다고가정.

B의 메모리공간에 A가 동적할당받은 시작주소값을집어넣음 이떄 주소값은4바이트임. ( 3000~3007 라고가정)

마지막 출력문에서 B->data1 을 상세히설명해봄

B는 3000번지를가리킴. -> data 는 3000~3004번지를가리킴.


마지막으로정리해보자면 , 위에서 선언된 B라는 포인터변수는 동적할당받은 공간의 시작주소값을 값으로 받앗고, 이 값으로 data1영역을 참조햇음.

코세형님은 맞다,아니다라고만말해주셈 부연설명해줄필요없음. 진짜 딱 맞다아니다라고만말해주샘 진짜 한번만더말함 맞다,아니다라고만말해주샘

그니까 yes or no라고만말해주샘 제발