社区
C++ 语言
帖子详情
C++清空链表时的问题
palhotel
2011-12-07 07:49:50
如果我链表节点中的有些数据域是动态分配的。比如节点内是char *name;然后生成节点时分配空间name=new char[10];
在删除时,是否需要先释放name,再释放节点呢?
...全文
207
6
打赏
收藏
C++清空链表时的问题
如果我链表节点中的有些数据域是动态分配的。比如节点内是char *name;然后生成节点时分配空间name=new char[10]; 在删除时,是否需要先释放name,再释放节点呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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++
链表
基本操作 初始化 插入 删除 输出
清空
清空
链表
涉及释放所有节点的内存,并将头节点设置为NULL: ```cpp void clearList(ListNode *&head) { ListNode *current = head, *next; while (current != NULL) { next = current->next; delete current; ...
C++
链表
基本操作.doc
5. **
清空
链表
**: `Destruct()` 函数用于释放
链表
的所有节点,防止内存泄漏。它通过两个指针 `current` 和 `temp` 依次遍历
链表
,删除节点并更新指针。 6. **
链表
逆序**: - **循环方法**:`ReverseList()` 使用...
C++
实现通用
链表
实现
链表
的创建、插入、删除、
清空
、查询、反转(循环和递归两种)等
用面向对象思想编写的
C++
双向
链表
类
5.
清空
操作:释放所有节点并
清空
链表
。 ```cpp template class DoublyLinkedList { private: ListNode* head; ListNode* tail; public: DoublyLinkedList() : head(nullptr), tail(nullptr) {} // 在
链表
...
c++
链表
在职 人世间
这通常在需要重复使用
链表
时
非常有用,可以快速
清空
链表
以便重新填充数据。 #### 查询
链表
状态 - `IsEmpty()` 方法检查
链表
是否为空。 - `GetLength()` 方法返回
链表
中当前的节点数量。 #### 插入和删除节点 - `...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章