[C] 값 입력할 때마다 메모리 할당

#include <cstdio>
#include <cstdlib>
#include <malloc.h>

int *temp, i = 0;

void test(int input);

int main()
{
	int input = 0;

	while(1)
	{
		printf("입력하세요 : ");
		scanf("%d", &input);
		test(input);
	}

	return 0;
}

void test(int input)
{
	i += 1;
	temp = (int *)realloc(temp, sizeof(int) * i);
	temp[i - 1] = input;

	for(int j = 0; j <= i - 1; j++)
	{
		printf("res = %d\n", temp[j]);
	}

	// 이렇게 할 경우 배열의 경우 배열의 크기가 나오지만 포인터 변수로
	// 동적 할당 했을 경우 포인터 변수의 크기가 나옴.
	printf("sizeof를 사용한 크기 측정 : %d\n", sizeof(temp));

	// 동적 할당된 메모리의 크기를 확인하려면 _msize 함수를 사용해야 함...
	// _msize 함수를 사용하기 위해선 malloc.h를 include 해야 함
	printf("_msize를 사용한 크기 측정 : %d\n\n", _msize(temp));
}

댓글

이 블로그의 인기 게시물

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

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