7.7 动态分配的内存释放之后还能使用么

是的。

有些早期的malloc() 文档提到释放的内存中的内容会“保留”,

但这个欠考虑的保证并不普遍而且也不是C 标准要求的。

几乎没有那个程序员会有意使用释放的内存, 但是意外的使用却是常有的事。

考虑下面释放单链表的正确代码:

struct list *listp, *nextp;

for(listp = base; listp != NULL; listp = nextp) {

nextp = listp->next;

free(listp);

}

请注意如果在循环表达式中没有使用临时变量nextp,

而使用listp = listp->next会产生什么恶劣后果。

永不止步步 发表于01-14 10:54 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:382791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号