작성
·
222
0
printf("Size of flex %lu\n", sizeof(struct flex));
printf("Size of *pt %zd\n", sizeof(*pf));
이 부분에서 둘다 16이 나오는데 pf는 malloc으로 배정받은 것이니 *pf의 size는 40이 돼야 하는거 아닌가요??
왜 strcut flex와 , malloc을 거친 pf의 size가 똑같은 것인가요?
답변 1
3
sizeof 는 동적 할당 메모리의 크기는 연산하지 못합니다.
sizeof는 스택 메모리 크기, 혹은 특정 자료형의 크기만 알아낼 수 있어요.
그래서 sizeof(*pf) 는 flex 구조체의 size_t count, double average 까지의 크기만 셀 수 있습니다.
동적으로 할당 받게된 values 배열의 크기는 산정할 수 없습니다.