C语言问题集--动态分配的内存释放之后就不能再使用翻译:朱群英, 孙 云 http://c-faq-chn.sourceforge.net/ 动态分配的内存一旦释放之后你就不能再使用, 是吧? 是的。有些早期的 malloc() 文档提到释放的内存中的内容会 ``保留", 但这个欠考虑的保证并不普遍而且也不是 C 标准要求的。 几乎没有那个程序员会有意使用释放的内存, 但是意外的使用却是常有的事。考虑下面释放单链表的正确代码: struct list *listp, *nextp; for(listp = base; listp != NULL; listp = nextp) { nextp = listp->next; free(listp); } 请注意如果在循环表达式中没有使用临时变量 nextp, 而使用 listp = listp-> next会产生什么恶劣后果。
» 相关连接:
|
» 网站最新帖:
» 精华帖:
» 热点帖:
|