Labyrinth分享 http://blog.sciencenet.cn/u/majian 致力于行人交通及疏散动力学研究

博文

链表删除过程

已有 4651 次阅读 2011-4-21 10:52 |个人分类:技术|系统分类:科研笔记| free, malloc, 链表

c里面的malloc和free的应该一一对应,开辟了一个就要释放一个,因此,对于动态创建的链接,进行删除操作的基本步骤如下:
第一步,获得第一个节点的地址。
第二步,根据第一个节点获得第二个节点地址。
第三步,调用free函数释放第一个节点。
第四步,根据二个节点获得第三个节点地址。
第五步,调用free函数释放第二个节点。
第六步,以此类推从头到尾删除所有的对象。
struct Node
{
……
struct Node * Next; /*下一对象的位置*/
};
void RemoveAll(struct Node *List)
{
struct Node *pHead=NULL;
struct Node *pOne=NULL;
pOne= List;
while(pOne->Next!=NULL)
{
pPrevOne=pOne;
pOne=pOne->Next;
free(pPrevOne);
}
}


https://wap.sciencenet.cn/blog-5422-435614.html

上一篇:会议Modeling, Simulation and Visual Analysis of Large Crowds
下一篇:VC6调试版本C运行库内存申请的一个bug
收藏 IP: 144.214.106.*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 05:13

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部