✏️ 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;
}
'c언어 개발일지' 카테고리의 다른 글
[나도 코딩 C언어] 다차원 배열 (1) | 2022.09.19 |
---|---|
[나도 코딩 C언어] 포인터 (0) | 2022.08.16 |
[나도 코딩 C언어] 배열 (0) | 2022.08.16 |
[나도 코딩 C언어] 함수 (0) | 2022.08.12 |
[나도 코딩 C언어] 조건 / 분기 (0) | 2022.08.12 |
댓글