| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2411 人关注过本帖
标题:问一个内存泄露的问题--通常人们称之为匿名对象
只看楼主 加入收藏
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
[bo][un]冰烨[/un] 在 2008-10-9 08:48 的发言:[/bo]

A* TestFuncA(int a,int b)
{
    return new A(a,b);
    //问题就在这里,申明了匿名对象后,怎么释放匿名对象的内存  
    //例如主函数的调用方式。怎么释放现在分配的内存?
}
这个的返回值是申请空间的地 ...

这个想法不错,啥时候用完了啥时候释放。如果我 delete temp; 呢?可不可以啊?应该达到相似的效果吧?

我用VC++6我怕谁?
2008-10-09 09:06
冰烨
Rank: 1
来 自:不咔界
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2007-10-30
收藏
得分:0 
嗯,是一样的

要么死去,要么奋斗!
2008-10-09 09:27
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
1 你可以返回auto_ptr<A>
2 事实上,作为源/汇程序的一个典型,是这样的:
auto_ptr<A> source() {return new A;}
void sink(auto_ptr<A>) {}
这个是优雅而又安全的写法,至于为什么可以这样,你可以自己想想看。注意sink函数的参数,不是引用类型哦~

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-09 09:44
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
惭愧啊。。翅膀我auto_ptr<A>都记错了。。。哎

学习需要安静。。海盗要重新来过。。
2008-10-09 16:14
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-10-9 09:44 的发言:[/bo]

1 你可以返回auto_ptr
2 事实上,作为源/汇程序的一个典型,是这样的:
auto_ptr source() {return new A;}
void sink(auto_ptr) {}
这个是优雅而又安全的写法,至于为什么可以这样,你可以自己想想看。注意sin ...

恩,用智能指针。的确是一个不错的思路。谢谢版主,以及楼上的各位热心人。

我用VC++6我怕谁?
2008-10-10 15:46
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
回复 1# VanHorn 的帖子
什么方法暂且不说...StarWing也已经说了用智能指针,也就是RAII机制...但是你的这个函数本身就不是异常安全的~~   要找问题就先解决你的函数变得异常安全...

樱花大战,  有爱.
2008-10-10 22:36
快速回复:问一个内存泄露的问题--通常人们称之为匿名对象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022051 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved