free
|
헤더 파일에 정의됨
<stdlib.h>
|
||
|
void
free
(
void
*
ptr
)
;
|
||
malloc() , calloc() , aligned_alloc() , (C11 이후) 또는 realloc() 에 의해 이전에 할당된 공간을 해제합니다.
만약
ptr
가 널 포인터인 경우, 이 함수는 아무 작업도 수행하지 않습니다.
ptr
의 값이 이전에
malloc()
,
calloc()
,
realloc()
, 또는
aligned_alloc()
(C11부터)
에 의해 반환된 값과 같지 않으면 동작은 정의되지 않습니다.
ptr
이 참조하는 메모리 영역이 이미 해제된 경우, 즉
free()
,
free_sized()
,
free_aligned_sized()
(since C23)
, 또는
realloc()
가 이미
ptr
을 인수로 호출되었고, 이후
malloc()
,
calloc()
,
realloc()
, 또는
aligned_alloc()
(since C11)
호출이
ptr
과 동일한 포인터를 반환하지 않은 경우, 이 동작은 정의되지 않습니다.
free()
가 반환된 후
ptr
포인터를 통해 접근이 발생하면(다른 할당 함수가 우연히
ptr
과 동일한 포인터 값을 반환한 경우를 제외하고)
이 동작은 정의되지 않습니다.
|
메모리 영역을 해제하는
|
(C11부터) |
목차 |
매개변수
| ptr | - | 할당 해제할 메모리에 대한 포인터 |
반환값
(없음)
참고 사항
이 함수는 특수 케이스의 양을 줄이기 위해 널 포인터를 받아들이고(아무 작업도 수행하지 않음) 아무 작업도 수행하지 않습니다. 할당이 성공하든 실패하든, 할당 함수가 반환하는 포인터는
free()
에 전달될 수 있습니다.
예제
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.24.3.3 free 함수 (p: 365)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.22.3.3 free 함수 (p: 254)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.22.3.3 free 함수 (p: 348)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.20.3.2 free 함수 (p: 313)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.10.3.2 free 함수
참고 항목
|
메모리 할당
(함수) |
|
|
(C23)
|
이전에 할당된 크기 지정 메모리 해제
(함수) |
|
(C23)
|
이전에 할당된 크기 및 정렬 지정 메모리 해제
(함수) |
|
C++ documentation
for
free
|
|