问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何释放已经创建过链表内存?换句话说就是销毁这个链表。 在网上看到,有的说得一个结点一个结点删除

发布网友 发布时间:2022-04-14 21:47

我来回答

6个回答

热心网友 时间:2022-04-14 23:16

大致看了一下,你这个程序的问题是内存管理方面的问题。
而且你的程序在内存方面问题比较大。
1、一个临时对象开辟(new)了一个内存空间,没有及时释放,导致生命周期结束,最后没有就没有办法去释放掉;还有一个临时变量开辟了多次也没有释放。
比如 成员函数create(int n)中
LNode *p;
ElemType x;
int i=1;
while(i<=n)
{
cout<<"请输入第"<<i<<"个链表元素:";
cin>>x;
p=new LNode;//这里开辟了空间,后面没有释放
p->data=x;
p->next=head->next;
head->next=p;
i++;
}

临时变量p开辟了多次内存,每次都没有释放。

解决方法,可以考虑用成员指针变量pNode替代局部需要开辟的内存的地方。

2 内存管理另一个有效解决方法是。
在一个指针变量(比如 LNode * pNode )初始化的时候指向NULL,
new 和delete要配套使用,delete之后试该指针指向NULL,这样就可以避免被删掉的指针再次被删掉。
例如:

LNode *pNode=NULL;
//........函数代码
pNode=new LNode();//这里开辟给pNode开辟空间之后,pNode就不指向NULL了
//......函数代码

if(pNode!=NULL)//如果不指向NULL就执行下面代码
{
delete pNode;//如果开辟了数组空间就delete []pNode;
pNode=NULL;
}希望可以帮到你.!

热心网友 时间:2022-04-15 00:34

需要一个节点一个节点的删除,因为这些节点都是你通过malloc函数动态分配的内存,程序不会自动收回。你只销毁头节点,只能说程序中不能再使用了。但其他节点所占的内存空间并没有释放,会造成内存泄露的。

热心网友 时间:2022-04-15 02:09

free(p)释放的是p指向的节点,而且仅仅是一个节点所占用的内存,如果p是链表的头指针,那么其余的节点(用malloc分配的内存)就成为*存了。要程序员自己管理程序分配的内存,是C++的一件麻烦事。如果用C#就省去这样的功夫了。

热心网友 时间:2022-04-15 04:00

除非有gc机制或者是局部堆分配的或者重复利用的等等, 不然要遍历```总之有内存泄露风险..

热心网友 时间:2022-04-15 06:08

遍历是肯定要的,然后逐个删除

热心网友 时间:2022-04-15 08:33

不能,必须遍历一遍,否则内存泄漏
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 参与军工生产的民营企业最关键的是要有哪“三证? 怎么知道我们交了重疾险的没? 北京有山有水好玩的地方都有那 北京周边哪里有好玩的地方?? 最好有山有水。可以开车前往 请问北京郊区附近有什么好玩的地方吗?有山有水,风景优美的地方 梦见自己坐在棺材里和认识的女人说话 北京周边有什么好玩的景点 要有山有水的 有特色的 三星滚筒洗衣机WF1702NCW/WF1702NCS如何使用“预洗”功能? 求Office2013 PPT的免费中文版 有没有ppt官方下载2013免费下载? 电脑ppt2013版本在哪里下载 易烊千玺出门的Vlog帅气十足,粉丝们的反应为何如此之大? 李斯丹妮和妈妈一起拍vlog,带妈妈一起“出道”的艺人都有哪些? 有哪些明星拍vlog? 工商银行的小额费 工商银行的小额费是怎么来的? 每笔收取多少钱? 中国工商银行扣的小额费事什么费运? 工商银行网银里扣除的小额费是什么意思? 批量业务小额费是什么 中国工商银行的“小额费”是什么费用呢? 中文数据库有什么不好 中文数据库查询乱码 常用中文数据库有哪些? 我爱巧克力,这个牌子衣服怎么样 我爱巧克力只适合学生吗 常州大学图书馆中文电子文献资源数据库有哪些 我爱巧克力 三星手机,广告上说我爱巧克力的手机,是什么型号的? 我爱巧克力的介绍 我爱吃巧克力,什么牌子好? 看吊牌怎样分辩我爱巧克力衣服年限? “我爱巧克力。”这句话韩语怎么说。 我爱巧克力女装价格定位 我爱巧克力女装价格定位 LG爱巧克力手机最新价格 西安有没有我爱巧克力女装店 西安有没有我爱巧克力女装店 你最喜欢的巧克力比例是多少?为什么? 你最喜欢的巧克力比例是多少?为什么? 为什么女生那么爱吃巧克力?