C Func free - sonkoni/Koni-Wiki GitHub Wiki

stdlib.h

free

동적 메모리 해제

void  free(void *ptr);
// ptr : 동적 메모리를 해제할 포인터
// 만약에 ptr 에 NULL 포인터이면 아무 일도 벌어지지 않는다.
// thread-safe 하다.

보통은 malloc ──▶ 사용 ──▶ free 패턴으로 사용한다.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int *numPtr;
    numPtr = malloc(sizeof(int));  // int 크기(4바이트)로 동적 메모리 만들고 첫 영역 주소를 numPtr에 저장.
    printf("=> %p\n", numPtr);     // numPtr에 저장된 값 출력: malloc 으로 만들어 저장한 메모리주소 출력됨
    
    *numPtr = 10;                  // 역참조하여 value 할당하기
    printf("=> %d\n", *numPtr);    // 역참조하여 value 불러오기
    
    free(numPtr);                  // numPtr에 저장된 `메모리주소`를 해제한다.
    return 0;
}
// => 0x6000032b4030
// => 10

참고

  • malloc ~ 동적 메모리 확보
  • calloc ~ 동적 메모리 확보하며 초기화
  • realloc ~ 동적 메모리 재할당
⚠️ **GitHub.com Fallback** ⚠️