栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

free()是否会删除存储在动态分配的内存中的数据?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

free()是否会删除存储在动态分配的内存中的数据?

是否

free()
删除存储在动态分配的内存中的数据?

不,

free
只需释放其参数(指针)所指向的已分配空间。此函数接受指向先前分配的内存块的char指针,并释放它-即,将其添加到可能重新分配的空闲内存块列表中。
释放的内存不会以任何方式清除/擦除。

您不应取消引用释放的(悬空的)指针。标准说:

7.22.3.3免费功能:

[…]否则, 如果参数与内存管理函数先前返回的指针不匹配,或者如果通过调用

free
or
释放了空间
realloc
,则该行为是undefined

上面的引用还指出,释放指针两次将调用 未定义的行为 。UB实施后,您可能会得到预期的意外结果。可能有程序崩溃或核心转储。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415448.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号