C语言free()函数的用法(附带实例)
free() 是 C语言标准库提供的函数,位于
free() 函数无返回值。free() 函数用于释放内存空间,因此它必须与分配内存空间的函数(calloc()、malloc() 或者 realloc() )搭配使用。
例如,释放一个分配整型变量的内存空间,代码如下:
【实例】将分配的内存释放,并且在释放前输出一次内存中保存的数据,释放后再利用指针输出一次。观察两次的结果,可以看出调用 free() 函数之后内存被释放。
<stdlib.h>
头文件中,它的原型如下:
void free(void *ptr);ptr 是最近一次调用 calloc()、malloc() 或者 realloc() 函数时返回的值。该函数的功能是释放由指针 ptr 指向的堆内存空间,使部分内存空间能被其他变量使用。
free() 函数无返回值。free() 函数用于释放内存空间,因此它必须与分配内存空间的函数(calloc()、malloc() 或者 realloc() )搭配使用。
例如,释放一个分配整型变量的内存空间,代码如下:
free(pInt);代码中的 pInt 为一个指向整型堆内存空间的指针,使用 free() 函数可将其释放。
【实例】将分配的内存释放,并且在释放前输出一次内存中保存的数据,释放后再利用指针输出一次。观察两次的结果,可以看出调用 free() 函数之后内存被释放。
#include<stdio.h> #include<stdlib.h> int main() { int* pInt; /*整型指针*/ pInt = (int*)malloc(sizeof(sizeof(int))); /*分配整型空间*/ *pInt = 100; /*赋值*/ printf("%d\n", *pInt); /*将值进行输出*/ free(pInt); /*释放该内存空间*/ printf("%d\n", *pInt); /*将值进行输出*/ return 0; }运行程序,结果为:
100
721232