销毁链表
#摘自《妙趣横生的算法(c语言版)》
在链表使用完毕后建议销毁它,因为链表本身会占用内存空间,如果一个系统使用很多的链表,而使用完毕后又不及时的销毁它,那么这些垃圾空间积累很多,最终可能导致内存泄露甚至程序崩溃,因此应该养成及时销毁不用链表的习惯。
销毁一个链表list的代码描述
void destorylinklist(linklist *list){
linklist p,q;
p=*list;
while(p){
p=q->next;
free(p);
}
*list-NULL;
}
函数destorylinklist()的作用是销毁一个链表list,它包括以下步骤:
1,首先将*list的内容赋值给p,这样p也指向链表的第一个结点,成为链表的表头
2,然后判断只要p不为空,就将p指向的下一个结点的指针赋值给q,并应用函数说free ()释放掉p所指向的节点,p再指向下一个节点,如此循环,直到链表为空为止。
3,最后将*list的内容置为null,这样主函数中的链表list就为空了,防止了list变为野指针,而且链表在内存中也被完全的释放掉了。