malloc( ) 함수와 free( ) 함수

CODEDRAGON Development/C, C++

반응형

   

malloc(), free()

종류

함수

성공

실패

메모리

할당 함수

void* malloc(size_t size);

할당된 메모리의

시작 주소 반환

NULL 반환

메모리

해제 함수

void free(void* p);

할당된 메모리 해제

  

   

   

malloc(4) 함수를 이용한 동적 메모리 할당

4byte만큼 메모리 할당하고 메모리의 시작 주소를 malloc()가 반환

int main(void){

        int* p = NULL;

        p=(int*) malloc(4);

        // .......

        return 0;

}

   

   

할당된 메모리의 시작 주소 형변환 (int*)

malloc()은 반환형이 void*이기 때문에 int형 포인터 변수로 강제형변환해서 시작주소 저장

p를 통해 힙영역의 4byte 주소공간 접근

int main(void){

        int* p = NULL;

        p=(int*) malloc(4);

        // .......

        return 0;

}

   

   

free( ) 함수를 이용한 동적 메모리 해제

p에 저장된 메모리 공간 해제

int main(void){

        int* p = NULL;

        p=(int*) malloc(3);

        // .......

free(p);

        return 0;

}