본문 바로가기

C/Reference

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

반응형