Programming/C

c언어 동적할당 예제 malloc free

fishersheep 2021. 8. 7. 12:12
반응형

c언어 동적할당: 메모리 관리를 효율적으로 하기위해서 미리 할당을 하지않고 실행시간동안 사용할만큼의 공간만 할당하는 것

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int* ptr;	//포인터 변수 선언
	ptr = (int*)malloc(sizeof(int) * 3); //prt에 int * 3 을 할당

	ptr[0] = 10;	
	ptr[1] = 20;	
	ptr[2] = 30;

	for (int i = 0; i < 3; i++)		//반복문 사용해서 값 출력
	{
		printf("%d \n", ptr[i]);
	}
	
	free(ptr);	//동적할당한 메모리 해제
}

 

입력한 값 만큼 동적할당

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int* ptr;	//포인터 변수 선언
	int num;	//입력받을 변수선언

	printf("값입력: ");
	scanf("%d", &num);	//scanf사용하여 입력

	ptr = (int*)malloc(sizeof(int) * num);	//num 만큼 동적할당

	for (int i = 0; i < num; i++)		//반복문 사용하여 prt 값 대입
	{
		ptr[i] = i;
	}

	for (int i = 0; i < num; i++)		//반복문 사용해서 값 출력
	{
		printf("%d \n", ptr[i]);
	}
	
	free(ptr);	//동적할당한 메모리 해제
}
반응형

'Programming > C' 카테고리의 다른 글

백준기본입출력 10991,10992 (c언어)  (0) 2021.08.13
c언어 구조체 및 typedef 활용예제  (0) 2021.08.13
c언어 출력타입 종류  (0) 2021.08.07
c언어 포인터 연산 예제  (0) 2021.08.07
c언어 헤더파일생성  (0) 2021.08.07