동적할당해준자료의크기 재는법
핫블루
2023.04.01
질문 제목 :동적할당해준자료의크기 재는법
질문 내용 : struct Employee{
int eID;
char eName[32];
char eDepartment[128];
char ePosition[32];
int eBirthDate;
char eAddress[256];
char ePhonNumber[32];
};
int Size = 4; // 임의의 입력받은 수struct Employee* eInfo = (struct Employee*)malloc(sizeof(struct Employee)*Size);이렇게 한 후 Size를 이용하지 않고
eInfo가 몇개의 Employee 구조체로 이루어져 있는지 아는 방법은 없나요?sizeof(eInfo) 일 경우 4바이트
sizeof(*eInfo) 일 경우 구조체 하나의 크기
-
예다움
답변 감사합니다.
-
찬솔나라
visual studio 를 사용하고 있다면 다음과 같이 해보세요.
#include malloc.h
cout_msize(eInfo) / sizeof(*eInfo)endl;
- _msize 함수는 힙에 할당한 메모리 크기를 구해 줍니다. 단, 정적 배열은 안됩니다. -
해리
답변 감사합니다.
-
엄마몬
C가 가지고 있는 단점 중 하나죠.
Size처럼 변수에 저장하고 있지 않으면, 할당 크기를 알 수 없습니다.
C에서 생기는 문제의 80% 이상은 할당 크기 문제 때문에 생기지 않을지...