[C] _msize, 포인터가 가리키는 메모리의 크기 알아내기
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int main()
{
char *test = NULL;
test = (char *)malloc(29);
printf("size - %d\n", _msize(test));
return 0;
}
_msize를 사용하기 위해선 #include <malloc.h> 헤더를 추가해줘야 한다.
힙 영역에 할당된 메모리 크기만 구할 수 있다.
스택에 할당된 배열의 시작 주소를 포인터에 초기화 시키고 그 포인터를 _msize의 매개변수로 넘기면 프로그램이 죽는다.
※ sizeof는 스택에 할당된 메모리 크기를, _msize는 힙에 할당된 메모리 크기를 구할 수 있다.
댓글
댓글 쓰기