free
|
定义于头文件
<stdlib.h>
|
||
|
void
free
(
void
*
ptr
)
;
|
||
释放先前由 malloc() 、 calloc() 、 aligned_alloc() 、 (C11起) 或 realloc() 分配的空间。
如果
ptr
是空指针,该函数不执行任何操作。
如果
ptr
的值不等于先前由
malloc()
、
calloc()
、
realloc()
或
aligned_alloc()
(C11起)
返回的值,则行为未定义。
如果
ptr
所指代的内存区域已被释放(即已使用
ptr
作为参数调用过
free()
、
free_sized()
、
free_aligned_sized()
(C23起)
或
realloc()
),且之后没有通过调用
malloc()
、
calloc()
、
realloc()
或
aligned_alloc()
(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函数(第313页)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 4.10.3.2 free 函数
参见
|
分配内存
(函数) |
|
|
(C23)
|
释放先前分配的指定大小内存
(函数) |
|
(C23)
|
释放先前分配的指定大小和对齐方式的内存
(函数) |
|
C++ 文档
关于
free
|
|