c언어는 메모리를 할당함수를 제공하면 함수는 다음과 같습니다.

memory allocation이라고 하는 malloc()함수를 제공하며 malloc()함수는 힙(heap)의 공간에서 메모리를 할당 받습니다.

malloc함수를 사용할떄에는 헤더파일 stdlib.h를 사용합니다.

 

변환값은 할당메모리의 시작주소 이며 메모리할당이 실패할 경우는 NALL이 리턴된다.

매개변수의 데이터형인 size_t는 int형 입니다.

void* malloc(size_t size);

 

힙(heap)은 운영체제가 관리하는 메모리공간

*heap란? 메모리공간은 런타임의 크기가 결정될 수 있는 요소들과 변수나 배열의 크기같은 것을 저장하기 위한 공간

 

malloc함수를 사용해서 힙의 공간에 있는 메모리를 사용할 수 있습니다.

*함수내에 사용되는 지역변수는 프로그램이 실행될떄 이미 할당되어있는 스택(stack)영역 안에 자동 생성되고 소멸된다.

 

Tip 스택: 지역 변수로 사용되는 메모리 영역

       힙: malloc()함수에 의해 할당되는 메모리 영역

 

free()함수란?

malloc()함수에 의해 할당된 메모리는 반드시 free()함수에 의해 해제하기위한 함수

 

 

정리

*malloc함수는 스택이라는 곳에 데이터를 올려놓기위해 사용되는 것

*free함수는 할당된 메모리공간을 해지하기 위한 함수

*heap공간은 프로그래머가 할당도 하며 명시적으로 해지도 해야 된다.

  -  malloc와free함수를 사용 할 수 있어야한다.