[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는 힙에 할당된 메모리 크기를 구할 수 있다.

댓글

이 블로그의 인기 게시물

[NSIS] 32비트와 64비트 모듈 등록하는 법. (regsvr32)

[Visual Studio] Windows 7 에서 Visual Studio 6.0 디버그 시 프로세스 좀비되는 증상 해결 방법