完全释放申请的内存空间
2012-07-30 20:37
141 查看
思想:每次都是删除第二个结点,当head结点没有后继结点,即没有第二个结点的时候,我们再去释放head结点(head结点保存着数据)
注:当然如果有头结点的话,我们释放的方法还是这样,因为我们的使用头结点的时候,是浪费了一个空间作为头结点,这样可以更好的对链表进行操作。因为头结点占有内存空间(虽然它只有指针域存在东西,当然,你可以为它的数据域保存东西,例如链表结点的数目等),所以还是需要释放。
对申请的内存释放内存是一个好习惯,所以我们可以在一个函数实现对我们所有申请的内存进行释放,然后在主函数中进行调用。
注:当然如果有头结点的话,我们释放的方法还是这样,因为我们的使用头结点的时候,是浪费了一个空间作为头结点,这样可以更好的对链表进行操作。因为头结点占有内存空间(虽然它只有指针域存在东西,当然,你可以为它的数据域保存东西,例如链表结点的数目等),所以还是需要释放。
bool freeAll(LinkList head) { while (head&&head->next) { LinkNode *p=head->next; head->next=p->next; free(p); } free(head); return true; }
对申请的内存释放内存是一个好习惯,所以我们可以在一个函数实现对我们所有申请的内存进行释放,然后在主函数中进行调用。
相关文章推荐
- linux驱动开发--内核空间中内存的申请与释放
- 动态链表的创建、节点内存空间申请以及释放
- 申请内存空间和释放内存空间
- C# 释放C++DLL 中申请的内存空间
- 关于库函数里申请的内存空间在库函数外释放的问题的一些总结
- C++旅途 之 申请动态内存和释放
- C++测试程序申请多大的内存空间
- 指针空间的申请和释放
- c语言之内存的申请malloc() 和释放free()
- 挖一下那些年的东东(模拟内存申请与释放C语言)
- 使用CRT调试内存分配堆来找出未释放的内存空间
- delete 指针之后 ,只是释放了指针指向的内存空间,指针不会自动置为NULL,还有delete 遇到指针为NULL时不会调用析构函数
- 【转载】指针空间的申请和释放(C)
- /MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
- 数组内存申请和释放,指针数组和数组指针
- new、delete、指向连续空间的指针、数组、空间释放、空间申请
- 关于QT的内存申请和释放
- c语言多级指针用malloc申请内存,释放报错,为什么会这样捏???????
- 动态申请和释放内存
- MTK内存动态申请释放