예제: 동적 메모리 할당, 사용, 해제
추천 자료: ASP.NET Core 인증 및 권한 부여
다음 코드는 C 언어에서동적 메모리 할당에 대한 가장 최소한의 코드를 보여줍니다.
코드: memory_allocation.c
// memory_allocation.c
// 동적 메모리 할당
#include <stdio.h>
#include <stdlib.h> // malloc 함수 사용을 위한 헤더 파일 추가
int main(void)
{
//[1] 포인터 변수 선언
int* num;
//[2] 메모리 할당
num = (int*)malloc(sizeof(int)); // 반드시 sizeof 연산자로 크기 지정
if (num) // 유효성 검사: NULL이 아니면 num 변수 사용
{
//[3] 할당된 공간에 값 대입
*num = 1234;
//[4] 포인터 변수의 값 참조
printf("%d\n", *num); // 1234
//[5] 메모리 해제
free(num);
}
return 0;
}
결과
1234
num = (int*)malloc(sizeof(int))
코드를 사용하면 int 타입의 크기 만큼의 포인터를 만들어 num
변수에 할당해줍니다. 처음 이 코드를 보면 복잡해 보이는데요. 다음 3단계로 이해해도 됩니다.
num = malloc(4)
num = malloc(sizeof(int))
num = (int*)malloc(sizeof(int))
위 세 가지 스타일의 코드 중 하나를 사용해도 실행은 될 수 있습니다만 마지막 형태를 반드시 사용하기를 추천합니다.
단순하게 int 타입의 변수를 선언하고 초기화하고 사용하려면 malloc
함수를 사용할 필요가 없습니다. 하지만 포인터 변수는 메모리를 처음 할당하거나 다시 할당할 때에는 반드시 malloc
함수 등을 사용하여 메모리를 할당하고 사용해야 합니다.
C 언어 동적 메모리 할당 동영상 강의
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!