求大师翻译,急急,free在程序里面是什么意思

求大师翻译,急急,free在程序里面是什么意思,第1张

free()

C语言函数

头文件:malloc.h

作用:释放malloc()函数给指针变量分配的内存空间的函数

使用后该指针变量一定要重新指向NULL,防止野指针出现,有效 规避误 *** 作。

中文名:free()

属性:C语言函数

头文件:malloc.h

作用:防止野指针出现

分享

简介

函数名: free

功 能: 与malloc()函数配对使用,释放malloc函数申请的动态内存。(另:对于free(p)这句语句,如果p 是NULL 指针,那么free 对p 无论 *** 作多少次都不会出问题。如果p 不是NULL 指针,那么free 对p连续 *** 作两次就会导致程序运行错误。)

用 法: void free(void *ptr)

free函数的用法释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。

free 不管指针指向多大的空间,均可以正确地进行释放,这一点释放比 delete/delete [] 要方便。如在分配指针时,用的是new或new[]。

在释放内存时,并不能图方便而使用free来释放。反过来,用malloc 分配的内存,也不能用delete/delete[]来释放。

举例:

int* p = (int *) malloc(4)

*p = 100

free(p)//释放 p 所指的内存空间

或者:

int* p = (int *) malloc ( sizeof(int) * 100 )//分配可以放得下100个整数的内存空间。

……

free(p)

扩展资料

1、free是和malloc、realloc或者calloc函数成对出现的,来保证动态分配的空间及时释放。

2、一块动态申请的内存用free释放一次就够。

关于使用分配的内存,调用free后的内存状态解释如下:

1.当调用free来释放分配的内存时,它表明该内存可以被其他人使用,也就是说,它可以在其他地方调用malloc之后分配给内存

2.对于释放后内存中的数据数量,我们只能认为是脏数据;换句话说,这部分数据可能存在并保持原始值,也可能被清空或修改为其他值;

这表明有许多可能的情况下,因此,内存被释放后,除了分配指针赋值的空,也要小心不要参考这部分的内存,不要试图得到这部分的价值,这些已经是非法的。

扩展资料:

在程序中使用自由释放,否则内存将不会被释放。

C将不会被释放。所谓的动态内存是malloc系列函数所请求的内存,只有在程序中使用free时才会释放。

标准库中malloc函数的实现原理。要理解malloc的内存存储结构,与全局变量不同,malloc不在编译器编译时分配内存空间,而只在调用malloc函数时才分配内存空间。有时我在中间调用free函数来释放空间。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11205030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存