free
|
ヘッダーで定義
<stdlib.h>
|
||
|
void
free
(
void
*
ptr
)
;
|
||
malloc() 、 calloc() 、 aligned_alloc() 、 (C11以降) または realloc() によって以前に割り当てられた領域を解放します。
ptr
がnullポインタの場合、この関数は何も行いません。
ptr
の値が、以前に
malloc()
、
calloc()
、
realloc()
、または
aligned_alloc()
(C11以降)
によって返された値と等しくない場合、動作は未定義です。
ptr
が参照するメモリ領域が既に解放されている場合、すなわち、
free()
,
free_sized()
,
free_aligned_sized()
(C23以降)
もしくは
realloc()
が既に
ptr
を引数として呼び出され、その後
malloc()
、
calloc()
、
realloc()
、もしくは
aligned_alloc()
(C11以降)
の呼び出しによって
ptr
と等しい値のポインタが返されていない場合、動作は未定義です。
free()
が返った後、
ptr
を通じてアクセスが行われる場合(別の割り当て関数がたまたま
ptr
と等しいポインタ値を返した場合を除く)、動作は未定義です。
|
|
(C11以降) |
目次 |
パラメータ
| ptr | - | 解放するメモリへのポインタ |
戻り値
(なし)
注記
この関数は、特殊ケースの量を減らすために(何も行わずに)nullポインタを受け入れます。アロケーションが成功するかどうかにかかわらず、アロケーション関数によって返されたポインタは
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
|
|