免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1605 | 回复: 4
打印 上一主题 下一主题

[C++] 【请教】关于C++内存释放的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-30 18:00 |只看该作者 |倒序浏览
最近在做学校的编译课程试验~
做词法分析这块的时候有个问题有点疑惑所以想请教各位高手~

问题是这样的:
在做词法分析的时候我需要创建一个链表,而在操作链表的指针的时候我只有两个指针在操作!
而用一个head指针来标记链表表头。
在添加节点的时候会出现类似下面的代码:
class chain
{
   chainnode node;//节点类型
  chain* nextnode;
   chain()
    {
    }
};//假如有这样一个链表类
pre->node=.....; //pre开始时是和head一样指向表头的
pre=new chain();//原来指向的节点赋值完毕,要指向一个新new出来的节点
temptr->nextnode=pre;//临时指针为了把链表串连起来
temptr=pre;
这样就在程序中形成了一个链表。
但是我的问题是我最后只有一个head指针指向这些被new出来的内存,
我如何释放它们呢?
或者说我这样创建链表有问题?
希望有高手能帮忙解答一下~

[ 本帖最后由 matrix_lhx 于 2007-3-30 18:03 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-03-30 18:18 |只看该作者
没问题的,释放时,只需要一个临时指针,用临时指针指向头结点,然后头结点后移,再释放临时指针指向的结点,如此反复直到链表释放完毕

PS:数据结构学得不好哦

论坛徽章:
0
3 [报告]
发表于 2007-03-30 19:22 |只看该作者
能详细写一下吗?
给个例子也好~
临时指针用new吗?
没有new的话也无法delete啊~
c++学的不太好~见量!

论坛徽章:
0
4 [报告]
发表于 2007-03-30 22:11 |只看该作者
原帖由 matrix_lhx 于 2007-3-30 19:22 发表
能详细写一下吗?
给个例子也好~
临时指针用new吗?
没有new的话也无法delete啊~
c++学的不太好~见量!

// ...
while (pHeader != NULL) {
     pTmp = pHeader;
     pHeader = pHeader->next;
     delete pTmp;
}
// ...

论坛徽章:
0
5 [报告]
发表于 2007-03-30 23:16 |只看该作者
十分感谢~!
问题解决了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP