달력

5

« 2020/5 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 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

댓글을 달아 주세요