free
메모리 블록을 할당 해제하거나 해제합니다.
구문
void free(
void *memblock
);
매개 변수
memblock
해제할 이전에 할당된 메모리 블록입니다.
설명
free
함수는 calloc
, malloc
또는 realloc
를 호출하여 이전에 할당된 메모리 블록(memblock
)을 할당 해제합니다. 해제된 바이트 수는 블록이 할당되거나 다시 할당될 때 요청된 realloc
바이트 수와 같습니다. 이 NULL
경우 memblock
포인터가 무시되고 free
즉시 반환됩니다. 잘못된 포인터(또는 할당되지 않은 메모리 블록에 calloc
malloc
realloc
대한 포인터)를 해제하려고 하면 후속 할당 요청에 영향을 미치고 오류가 발생할 수 있습니다.
메모리 해제 중 오류가 발생하면 운영 체제에서 제공하는 실패 특성에 대한 정보를 바탕으로 errno
가 설정됩니다. 자세한 내용은 다음을 참조하세요.errno
, _doserrno
, _sys_errlist
및 _sys_nerr
.
메모리 블록이 해제 _heapmin
된 후 사용되지 않는 영역을 병합하고 운영 체제로 다시 해제하여 힙의 사용 가능한 메모리 양을 최소화합니다. 운영 체제에 릴리스되지 않은 해제된 메모리는 사용 가능한 풀로 복원되고 다시 할당할 수 있습니다.
애플리케이션이 C 런타임 라이브러리 free
의 디버그 버전과 연결되면 .로 확인 _free_dbg
됩니다. 디버깅 프로세스 중에 힙을 관리하는 방법에 대한 자세한 내용은 CRT 디버그 힙을 참조하세요.
free
는 __declspec(noalias)
로 표시되면 함수는 전역 변수를 수정하지 않도록 보장되지 않습니다. 자세한 내용은 noalias
를 참조하세요.
할당된 메모리를 _malloca
해제하려면 .를 사용합니다 _freea
.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
함수 | 필수 헤더 |
---|---|
free |
<stdlib.h> 및 <malloc.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
malloc
에 대한 예를 참조하세요.
참고 항목
메모리 할당
_alloca
calloc
malloc
realloc
_free_dbg
_heapmin
_freea