C语言free()函数,释放内存用法详解 | 您所在的位置:网站首页 › fre函数的参数 › C语言free()函数,释放内存用法详解 |
free()函数
C语言标准库stdlib.h中的free()函数,可用于释放分配给程序的内存。通常情况下,C语言的程序结束之后,运行程序的操作系统会自动将那些之前分配给程序的内存释放掉,但如果需要释放动态分配的内存,那么就需要使用free()函数来完成对应的工作。free()语法如下: void free(void *ptr)提示:free()函数只能用于释放由calloc()、malloc()和realloc()函数等动态分配的内存。 free()参数 参数描述 ptr指针,指向所要释放的分配的内存的地址提示:free()函数的参数可以是空指针,而且一般情况下,释放内存之前也会对指向内存的指针进行检查,判断是否为空指针。 提示:如果尝试使用free()函数释放非动态分配(未使用calloc()、malloc()和realloc()函数动态分配)的内存可能会导致未定义的行为,比如多次释放就会如此。 提示:通过free()释放内存后的,可以将参数(一个指针)指向NULL,避免悬挂指针。 free()实例代码如下实例代码,将使用free()函数释放通过calloc()动态分配的内存,并将指针指向NULL,避免悬挂指针: #include "stdio.h" #include "stdlib.h" #include "string.h" int main() { int element_num = 100; char *arr = calloc(element_num, sizeof(char)); if(arr == NULL){ printf("未动态分配内存\n"); }else{ strcpy(arr, "hello"); printf("动态分配内存完成\n"); printf("%s\n", arr); } // free()函数释放内存 free(arr); // 指针指向NULL,避免悬挂指针 arr = NULL; return 0; }代码运行后,得到输出值为: 动态分配内存完成 hello免责声明:内容仅供参考,不保证正确性。 |
CopyRight 2018-2019 实验室设备网 版权所有 |