在遍历链表时正确释放元素的方法是:使用临时变量存储下一个元素的地址。
这样就可以安全的地在任何时候释放当前元素,不必担心在取下一个元素的地址时还要引用它。
代码如下:(注意for执行的顺序)
struct node *p, *start, *tmp; for(p=start; p; p=tmp){ tmp = p->next; delete(p); p = NULL; }
前提是链表最后的 next被赋值为NULL了,要不然即使 p最后没有数据了还是会执行下去的。
快捷操作:
坚其志,苦其心,劳其力,事无大小,必有所成。
@如有侵权,请作者本人尽快与我(chrayo#163.com)联系,我将及时删除侵权内容。