인프런 커뮤니티 질문&답변

Jae Ung Yoon님의 프로필 이미지
Jae Ung Yoon

작성한 질문수

홍정모의 따라하며 배우는 C언어

14.11 신축성있는 배열 멤버

struct flex와 *pf의 size가 같은 이유

작성

·

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 배열의 크기는 산정할 수 없습니다. 

Jae Ung Yoon님의 프로필 이미지
Jae Ung Yoon

작성한 질문수

질문하기