달력

12

« 2020/12 »

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
반응형

   

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;

}

 

반응형
Posted by codedragon codedragon

댓글을 달아 주세요