오늘은 맑음

c언어 동적 할당, malloc 본문

Language/c, c++

c언어 동적 할당, malloc

자전거 타는 구구 2021. 5. 3. 21:30
반응형

 c언어에서는 malloc을 이용해서 동적할당을 할 수 있습니다.

 

 malloc은 stdlib.h 안에 들어있으므로 사용하려면 stdlib 헤더파일을 include 해주셔야 합니다.

 malloc함수의 원형은 다음과 같습니다.

 

void *malloc(size_t Size);

 

 malloc은 함수의 동작이 성공하면 시작 메모리 주소를 반환하고, 실패하면 NULL을 반환합니다.

그리고 시작 메모리 주소부터 Size만큼을 동적 메모리로 할당합니다.

 

포인터를 선언하고 malloc을 이용해서 동적할당을 해보겠습니다.

int형으로 buffer를 선언하고 malloc을 이용해서 int * 10을 사이즈로 잡아줍니다.

그러면 이제 buffer에는 int 사이즈만큼의 메모리 x 10만큼의 크기가 동적할당됩니다.

 

이제 buffer를 출력해보겠습니다.

 

포인터를 출력하는데는 두 가지 방법이 있습니다.

 

1. 배열 인덱스 방식 출력

2. 포인터 형식 출력

둘 중 편한 방식으로 사용하시면 됩니다.

 

 컴파일 후 실행을 해보니 모두 출력이 잘 되는 것을 확인할 수 있습니다.

 

 그리고 동적 할당을 한 경우 꼭 free함수를 사용해서 해제해줍시다.

 동적할당이 된 메모리 영역은 OS에서 사용할 수 없게 됩니다. 

 결국 프로그램이 종료될 때 까지 동적할당은 유지가 됩니다.

 만약 프로그램이 수행되는 도중 free를 하지 않은 채 malloc을 계속 사용하게 된다면, 결국 사용가능한 메모리가 점점 줄어들어 어버버하다가 죽게 됩니다.

 

 따라서 꼭 free를 사용해서 해제해줍시다.

반응형
Comments