社区
C++ 语言
帖子详情
C++清空链表时的问题
palhotel
2011-12-07 07:49:50
如果我链表节点中的有些数据域是动态分配的。比如节点内是char *name;然后生成节点时分配空间name=new char[10];
在删除时,是否需要先释放name,再释放节点呢?
...全文
200
6
打赏
收藏
C++清空链表时的问题
如果我链表节点中的有些数据域是动态分配的。比如节点内是char *name;然后生成节点时分配空间name=new char[10]; 在删除时,是否需要先释放name,再释放节点呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hackhat
2011-12-08
打赏
举报
回复
struct node
{
.......
~node()
{
delete[] name;
name=NULL;
}
};
标准的做法
riyueming184
2011-12-08
打赏
举报
回复
直接把节点弄成一个类,有构造函数,有析构函数不就成吗?
这是C++,不是C语言……,何必那么麻烦!
yaotang
2011-12-07
打赏
举报
回复
存放name指针 的是 一段指针类型大小的内存空间(后称内存段1),
name指针 指向的是 一段10个char类型大小的内存空间(侯成内存段2)
释放节点的时候,是释放了name,就是释放了内存段1,并没有释放内存段2,所以为了不会发生内存泄漏,说以在释放节点前要先释放name指针指向的内存段2。
modicum_ck
2011-12-07
打赏
举报
回复
2楼的方法不错。
释放的话应该先释放name,然后再释放结点。delete后最好是把结点指向NULL,防止野指针。
wsd8024
2011-12-07
打赏
举报
回复
再节点 这个 结构体中 写一个 析构函数
例如 :
struct node
{
.......
~node()
{
delete[] name;
}
};
释放节点后 自动删除name所指向数据.
Usopp_Dream
2011-12-07
打赏
举报
回复
先释放节点 释放name
话说 结贴率是0 怎么回事?好奇
C++
链表
基本操作 初始化 插入 删除 输出
清空
对
链表
的基本操作,初始化、插入、删除、输出、
清空
。
C++
实现通用
链表
实现
链表
的创建、插入、删除、
清空
、查询、反转(循环和递归两种)等
链表
C++
实现
链表
C++
实现,增加,删除,逆序,获取
链表
长度,
清空
链表
,定位
链表
等等
链表
的
C++
实现(线性表的链式存储
C++
实现)
使用
C++
类模板实现了线性表的链式存储结构(
链表
),类中包含了线性表的常用方法:向线性表中插入一个元素、删除一个元素、
清空
线性表、获取一个元素、获取线性表长度等。大致实现了STL中的
链表
的基本功能,通过对比...
链表
的创建,
清空
,销毁,追加,插入,删除等操作的实现
该程序实现了
链表
的创建,销毁,
清空
,追加,插入,删除及遍历等操作。实现过程清晰、简洁,是很好的学习资源
C++ 语言
64,639
社区成员
250,578
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章