目录
3.1 malloc、calloc 和 realloc 函数
1 free函数
free 函数用于释放之前通过 malloc、calloc 或 realloc 分配的内存,传给free函数一个并非动态分配的内存可能导致程序立即终止或在晚些时候终止。同时释放一块内存的一部分是不允许的,动态分配的内存必须整块一起释放。其原型如下:
原型 |
void free(void* ptr); |
参数 |
ptr: 指向要释放的内存块的指针。 |
返回值 |
无 |
使用 free 时,需要注意以下几点:
- 多次释放: 不能对同一个指针调用 free 多次,这会导致未定义行为。
- 空指针释放: 对 NULL 调用 free 是安全的,不会产生任何效果。
- 悬挂指针: 释放内存后,应将指针设置为 NULL,以防止悬挂指针的使用。
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int*)malloc(10 * sizeof(int));
if (arr == NULL) {
fprintf(stderr, "Memory allocation failed\n");
return 1;
}
// 使用数组(省略)
// 释放内存
fr