C语言free()函数,释放内存用法详解 您所在的位置:网站首页 fre函数的参数 C语言free()函数,释放内存用法详解

C语言free()函数,释放内存用法详解

2024-07-18 01:29| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有