typedef struct eom{
char a[50];
int b;
}eom;
int main(){
eom *str = NULL;
str = (eom*)malloc(sizeof(eom));
printf("이름을 입력해 \n");
scanf("%s", &(*str).a);
printf("%s\n", &(*str).a);
printf("%d \n", sizeof(str));
free(str);
return 0;
}
저기저ㅣ 제가 굵게 표시한 부분요
출력되면 4가나오는데
str = (eom*)malloc(sizeof(eom));
이말은 구조체의 크기를 동적할당의 크기로 갖는다는거 아닌가요?
그럼 54가 나와야하는게아닌가요? 왜 포인터 할당크기인 4가나오는거죠??
문자열 포인팅하면 첫글자만 포인팅 하는거 아닌가?
대체 뭘 기대한거냐
동적할당이건 뭐건간에포인터 변수니까 4바이트져 주소값 저장하잖아여 double a=1.4; double *p=&a; 했을때 p출력하면 8인지 4인지 뭔가 답인지는 아시져? 모르시면 포인터 좀 더 공부하셔야..