| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2317 人关注过本帖
标题:关于用delete释放链表指针的问题
只看楼主 加入收藏
betashang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-10-10
收藏
 问题点数:0 回复次数:5 
关于用delete释放链表指针的问题
我在程序中定义了以下这个结构
struct LstParticle
{
    CSpheralParticle *pParticle;
    LstParticle* pNext;
};
然后定义了指针
LstParticle* head;
LstParticle* ps;
创建一个链表后,使用完,想删除释放空间,
之前创建的时候ps=new LstParticle;
     pParticle=new CSpheralParticle();
那么删除的时候是不是也要delete ps->pParticle;
delete ps;
如果要是直接delete ps;会不会删除pParticle所指的对象。怎样才能合理的回收内存?
搜索更多相关主题的帖子: 链表 delete 指针 释放 
2005-10-18 15:31
lcm
Rank: 4
等 级:贵宾
威 望:13
帖 子:140
专家分:0
注 册:2005-2-4
收藏
得分:0 
new 与delete 是配套的 ,有多少个new 相应的就应该 有多少个delete

从 小 事 做 起,脚 踏 实 地 ~
2005-10-18 15:39
lcm
Rank: 4
等 级:贵宾
威 望:13
帖 子:140
专家分:0
注 册:2005-2-4
收藏
得分:0 
// 删除已分配的链表
删除这样的链表节点需要两个步骤,先delete链表节点data域里指针所指的对象,然后才能删除链表节点的链表节点  void  DeleteList( pND_LIST Head )// pNO_LIST 是链表指针
  {
    pND_LIST Next;
    while( Head )
    {
      Next = Head->next;
      m_DestructFunc( (void *) Head );
      free( Head );
      Head = Next;
    }
  }
  

从 小 事 做 起,脚 踏 实 地 ~
2005-10-18 15:54
betashang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-10-10
收藏
得分:0 
谢谢版主,
很弱的问一下,我需要象上面你做的那样写一个函数,还是直接用delete删除,如:delete ps->pParticle;
delete ps;

2005-10-18 16:20
lcm
Rank: 4
等 级:贵宾
威 望:13
帖 子:140
专家分:0
注 册:2005-2-4
收藏
得分:0 
要删除整个链表就要另外写一个函数

从 小 事 做 起,脚 踏 实 地 ~
2005-10-18 17:39
betashang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-10-10
收藏
得分:0 
谢谢!

2005-10-18 17:54
快速回复:关于用delete释放链表指针的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065647 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved