본문 바로가기

C/Study

[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));
}
반응형