社区
工具平台和程序库
帖子详情
有关树型节点释放内存的疑问。
gimmytang2003
2003-11-12 07:39:39
程序中有一个node型指针:
struct node *tree;
tree = (struct node *)malloc( 2*sampleSize*sizeof(struct node) );
用完这个tree后,可否用free(tree)将整个树全部释放掉?
注意tree指针并没变化,始终指向第一个元素。
...全文
45
5
打赏
收藏
有关树型节点释放内存的疑问。
程序中有一个node型指针: struct node *tree; tree = (struct node *)malloc( 2*sampleSize*sizeof(struct node) ); 用完这个tree后,可否用free(tree)将整个树全部释放掉? 注意tree指针并没变化,始终指向第一个元素。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gimmytang2003
2003-11-13
打赏
举报
回复
我做了如下实验
1。不使用free命令,程序运行时占用内存30M.
2。仅使用一次free(tree),程序运行时占用内存14M.
3。使用遍历所有节点清空,占用内存不变,仍为14M.
gimmytang2003
2003-11-13
打赏
举报
回复
有没有人看看啊。。~~~
我按 ZhangYv(网络故障中) 的方法逐个清空节点,可是用任务管理器观察到的内存占用并没有减少啊。你的这个方法似乎没有什么效果。
Wolf0403
2003-11-12
打赏
举报
回复
树。。。我在翻译 Plainsong 贴的那个 Object Pascal 的 RB-Tree 代码。。。头硕大ing
楼上老大应该知道是哪篇,呵呵
ZhangYv
2003-11-12
打赏
举报
回复
不行啊,需要遍历树把一个个节点都释放掉.
void Postorder(node *p)
{
if (p){
Postorder(p->leftChild);
Postorder(p->rightChild);
free(p);
}
}
gimmytang2003
2003-11-12
打赏
举报
回复
可是我用watch观察tree的元素时,发现已经全部清空了啊。
tree, tree+1, ... tree+size所指向的元素都是NULL。这是不是说只要tree指针位于内存首,用free(tree)就可以把这个内存区全部清空??
QTreeWidget实现的树形
节点
的添加+双击响应+删除详解
承接该文http://www.cnblogs.com/Romi/archive/2012/04/16/2452709.html,在该文基础上继续讲解QTreeWidget控件的使用,同时解决该文最后留下的问题。 QTreeWidget是实现树形结构的类,在很多软件中都可以看到类似树形结构的界面。 我做的一个示例如下图,用来处理图像,最顶层
节点
是图像的路径名,子
节点
是图像的各个波段,双击各个波段
面试题——vector完整总结
Vector的总结 Vector底层是一个动态数组 默认构造的方式是0, 之后插入按照1 2 4 8 16 二倍扩容。注(GCC是二倍扩容,VS13是1.5倍扩容。 原因可以考虑
内存
碎片和伙伴系统,
内存
的浪费)。《 扩容后是一片新的
内存
,需要把旧
内存
空间中的所有元素都拷贝进新
内存
空间中去,之后再在新
内存
空间中的原数据的后面继续进行插入构造新元素,并且同时
释放
旧
内存
空间,并且,由于vector 空间的重新配置,导致旧vector的所有迭代器都失效了。》 扩容原理概述 新增元素:Vector通过一个连续的
内存
管理
自第一台计算机诞生,其最小存储单元就被永久的定格了——一个由8个比特(bit)组成的称为字节(byte)的单位。计算机的所有
内存
以字节数组的方式进行编址。 当一个逻辑上长于一个字节的整形数据放置在
内存
中时(比如16位,32位,和64位的整数),计算机设计者需要考虑这些字节的存储顺序。一
Linux 设备驱动程序(三)
内核逻辑地址组成了内核的常规地址空间。在大多数体系架构中,逻辑地址和与其相关联的物理地址的不同,仅仅是在它们之间存在一个固定的偏多量。逻辑地址使用硬件内建的指针大小,因此在安装了大量
内存
的。内核虚拟地址和逻辑地址的相同之处在于,它们都将内核空间的地址映射到物理地址上。内核虚拟地址与物理地址的映射不必是线性的和一对一的,而这是逻辑地址空间的特点。所有的逻辑地址都是内核虚拟地址,但是许多内核虚拟地址不是逻辑地址。位的,这取决于硬件的体系架构。分配的
内存
具有一个虚拟地址(但并不存在直接的物理映射)。
Linux系统结构详解
注:本文仅作为个人学习记录使用。如有任何
疑问
,请私信博主。 Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图所示。 一、linux内核 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、
内存
、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Linux 内核由如下几部分组成:
内存
管理、进程管理、设备驱动程序...
工具平台和程序库
24,853
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章