동적 메모리 할당 (C)

  • 2 minutes to read

C 언어에서는 사용자가 직접 동적으로 메모리를 할당하고 사용한 후 할당된 메모리를 해제할 수 있습니다. 이러한 일련의 절차를 동적 메모리 할당이라고 합니다.

문법

C 언어에서 동적으로 메모리를 할당할 때에는 malloc() 함수를 사용합니다. malloc() 함수는 stdlib.h 헤더 파일에 정의되어 있습니다.

malloc() 함수를 사용한 동적 메모리 할당 관련 코드 조각은 다음과 같습니다.

int* num = malloc(sizeof(int));

주의할 점은 동적으로 할당된 변수는 사용한 후에 반드시 free() 함수로 메모리 해제를 해주어야 합니다.

free(num);

예제

다음 코드는 C 언어에서 동적 메모리 할당에 대한 가장 최소한의 코드를 보여줍니다.

// memory_allocation.c
// 동적 메모리 할당
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    //[1] 포인터 변수 선언
    int* num;

    //[2] 메모리 할당
    num = malloc(sizeof(int));

    if (num) // 유효성 검사: NULL이 아니면 num 변수 사용
    {
        //[3] 할당된 공간에 값 대입
        *num = 1234;

        //[4] 포인터 변수의 값 참조
        printf("%d\n", *num);

        //[5] 메모리 해제
        free(num);
    }

    return 0;
}

실행

1234

참고 강좌

C 언어 동적 메모리 할당에 대한 참고 강좌는 다음 경로를 참고하거나 데브렉 사이트의 동영상 강의들을 참고하세요.

  • VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준과 출판사에게 있습니다.
  • 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다.
  • 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다.
  • 단, 링크와 SNS 공유 그리고 Youtube 동영상 공유는 허용합니다.
박용준 강사의 모든 유료 동영상 강의는 데브렉(devlec.com)에서 독점으로 제공됩니다.