본문 바로가기
c언어 개발일지

malloc 함수로 메모리 할당

by 노랑사랑팽이 2022. 9. 19.

✏️ malloc

memory allocatio

동적 메모리 할당

 

🔎  <stdlib.h> 

malloc 함수 사용하기 위해서는 해당 헤더파일 필요

 

🔎 void *malloc(size_t _Size);

heap 영역에 byte 크기의 메모리 할당

 

🔎 free(포인터);

stack 과 달리 할당된 메모리를 해제해 줘야 함.

해당 작업 해주지 않을 경우, 메모리 누수 발생!

 

🔎  할당한 메모리 성공하면 첫번째 주소값 리턴

🔎  할당한 메모리 실패하면 NULL 리턴

 

 

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

#define SIZE 5

int main()
{
    int i = 0;
    int *pArr = NULL;

    pArr = (int *)malloc(sizeof(int)*SIZE);   // malloc(memory allocation) 메모리 할당
    
    // 동적 할당 실패
    if( pArr == NULL ){   
      printf("malloc error");
      exit(1);         // 프로그램 종료
    }

    for( i=0;i<SIZE;i++){    
        Arr[i] = i+1;       // 1부터 5까지 대입한 배열 생성
    }
    
    if(p != NULL){    // p가 NULL이 아니면
        free(p);        // 메모리 해제함
    }
    return 0;
}

댓글