人较笨且记性不好,故记录在此.折叠代码打不开请F5.本博中很多是转载收录其他网友的文章(原文地址请见博文末尾),所有权为原作者所有!!!
此博客已不再更新和维护,欢迎关注我的github新博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

在遍历链表时正确释放元素的方法是:使用临时变量存储下一个元素的地址。

这样就可以安全的地在任何时候释放当前元素,不必担心在取下一个元素的地址时还要引用它。

代码如下:(注意for执行的顺序)

struct node *p, *start, *tmp;
for(p=start; p; p=tmp){
      tmp = p->next;
      delete(p);
      p = NULL;
}

  前提是链表最后的 next被赋值为NULL了,要不然即使 p最后没有数据了还是会执行下去的。

posted on 2011-06-05 18:04  子坞  阅读(291)  评论(0编辑  收藏  举报