본문 바로가기
C언어/동적할당

[C언어] 동적 할당이란 무엇인가 (malloc, free)

by bigpicture 2022. 7. 25.
반응형

동적 할당은 프로그램 실행 중에 메모리 공간을 할당하는 것을 말합니다. 동적 할당은 전역변수와 지역변수로는 해결되지 않는 상황에 사용합니다. 함수 내 지역변수 처럼 함수가 호출될 때 할당되며, 함수를 빠져나가도 전역변수처럼 유지되는 유형의 변수를 선언하는 것입니다. 이와 같은 변수는 malloc 함수를 통해 할당하고, free 함수를 통해 소멸시킵니다. 

malloc 함수는 아래와 같이 사용합니다. int 형으로 선언한 경우의 예시입니다. 

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


malloc 함수의 반환형은 void이기 때문에 형변환을 해주어야 합니다. (int *) 명령어를 이용하여 int형 포인터로 형변환을 하였습니다. 함수 인자에는 바이트 크기를 넣어주면 됩니다. sizeof(int) 를 이용하여 int의 크기를 넣어주었습니다. 

소멸시키는 방법은 아래와 같습니다. 

free(p1);
반응형

댓글