社区
C++ 语言
帖子详情
有关析构函数的问题
renyangyao
2003-08-23 07:56:14
我创建了一个链表,头指针为head
现在想在析构函数里释放内存空间,请问该怎么办
...全文
23
9
打赏
收藏
有关析构函数的问题
我创建了一个链表,头指针为head 现在想在析构函数里释放内存空间,请问该怎么办
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
renyangyao
2003-08-27
打赏
举报
回复
基本上使用steedhorse的方法
Node * p = head;
node * q;
while(p)
{
q = p- >next;
delete p;
p = q;
}
renyangyao
2003-08-27
打赏
举报
回复
基本上使用steedhorse的方法
Node * p = head;
node * q;
while(p)
{
q = p- >next;
delete p;
p = q;
}
晨星
2003-08-23
打赏
举报
回复
同意楼上的方法,如果你确实感兴趣,可以专门写一个Allocate函数,然后再写一个Deallocate函数,然后再Allocate中分配上几十万个结点,再Deallocate中释放他们,写一段类似下面的测试代码:
getch();
Allocate();
getch();
Deallcate();
测试时打开Windows 2000的任务管理器,一遍按键,一般观察你的进程的内存占用情况。
注意,因为操作系统内存的分配往往是以段或页为单位的,所以,如果你分配的结点书不多,可能根本看不出内存的变化。
不过说实在的,我个人感觉这挺无聊的,:)
winco
2003-08-23
打赏
举报
回复
连续申请一个10000个节点的东东,
再没有释放内存的时候,通过Win2000的线程监测(任务管理器)
看一下程序使用的内存有多少。
然后释放,再看用了多少
renyangyao
2003-08-23
打赏
举报
回复
我用的是vc++6.0
renyangyao
2003-08-23
打赏
举报
回复
我觉得也是,不过还是想测试一下,不知道大家有什么好办法吗?
nirvana_li
2003-08-23
打赏
举报
回复
《数据结构》里面就是用的 steedhorse(晨星)的方法,应该可以。
renyangyao
2003-08-23
打赏
举报
回复
谢谢上面的朋友,编译通过了,可是我怎么才能看出内存释放了啊?
晨星
2003-08-23
打赏
举报
回复
从头到尾,一个结点一个结点的释放啊。比如可以这样:
Node * p = head;
node * q;
while(p)
{
q = p->next;
delete p;
p = q;
}
《当
析构函数
遇到多线程》PPT
这是陈硕在 2009 年上海 C++ 技术大会演讲《当
析构函数
遇到多线程》的 PPT 投影片,可自由用于个人学习,其他使用需得到作者许可。 简介:编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种 race condition 是 C++ 多线程编程面临的基本
问题
,可以借助 tr1 中的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。
C++
析构函数
C++
析构函数
我使用的继承开发环境: Visual Studio 2010设计一个类时,如何写
析构函数
?
析构函数
如果我们不写的话,C++ 会帮我们自动的合成一个,就是说:C++ 会自动的帮我们写一个
析构函数
。很多时候,自动生成的
析构函数
可以很好的工作,但是一些重要的事迹,就必须我们自己去写
析构函数
。
析构函数
和构造函数是一对。构造函数用于创建对象,而
析构函数
是用来撤销对象。简单的说:一个
析构函数
、虚
析构函数
、纯虚
析构函数
我们知道对象在结束其生命周期之前,都会调用
析构函数
以完成必要的清理工作;派生类调用的
析构函数
顺序是“先子类,后基类”; 这篇文章用于总结当
析构函数
是普通
析构函数
、虚
析构函数
、纯虚
析构函数
时,我们使用delete运算符删除一个指针对象时,
析构函数
会有什么情况发生; 普通
析构函数
CBase是基类,CDerive是其子类,类源码代码如下: class CBase { public: CBase(){} //基类
析构函数
~CBase(){ cout << "CBase Des
c++
析构函数
、虚
析构函数
、纯虚
析构函数
详解
我们知道对象在结束其生命周期之前,都会调用
析构函数
以完成必要的清理工作;派生类调用的
析构函数
顺序是“先子类,后基类”; 这篇文章用于总结当
析构函数
是普通
析构函数
、虚
析构函数
、纯虚
析构函数
时,我们使用delete运算符删除一个指针对象时,
析构函数
会有什么情况发生;普通
析构函数
CBase是基类,CDerive是其子类,类源码代码如下:class CBase { public: CBase(){}
析构函数
详解
析构函数
详解
析构函数
的概念 前面通过构造函数的学习,我们知道一个对象是怎么来的,那一个对象又是怎么没呢的?
析构函数
:与构造函数功能相反,
析构函数
是完成对象的销毁,局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用
析构函数
,完成类的一些资源清理工作。
析构函数
用来完成对象资源清理的工作
析构函数
的特性
析构函数
名是在类名前加上字符 ~。 无参数无返回值。 一个类有且只有一个
析构函数
。若用户没有显式定义,系统会自动生成默认的
析构函数
。 当对象生命周期结束时,C++编译系统系统会自动调用
析构函数
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章