标题:关于c++中new 和 delete的问题
只看楼主
wghost
Rank: 2
等 级:论坛游民
帖 子:47
专家分:31
注 册:2009-6-6
得分:0 
真是众说纷纭啊,谁能给一个确切的答案啊???
2010-03-20 13:51
yangriver
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-3-8
得分:0 
原来如此
2010-03-21 13:37
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
得分:0 
必须用delete释放,养成这个习惯。
如果应用程序不释放申请的内存空间,那么系统会因为内存耗尽而崩溃。
这是c++的弊端。
2010-03-26 13:22
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
得分:0 
以下是引用ltyjyufo在2010-3-18 18:06:55的发言:

       如果程序结束后会自动释放的话,那要delete来做什么????????我觉得系统在没有关机之前是收不回分配出去的内存的(不用delete释放的话),只有在下次开机(或重起)的时候系统才能够收回。
好好补补什么叫内存泄露
2010-03-26 13:29
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
得分:0 
以下是引用ltyjyufo在2010-3-18 18:06:55的发言:

       如果程序结束后会自动释放的话,那要delete来做什么????????我觉得系统在没有关机之前是收不回分配出去的内存的(不用delete释放的话),只有在下次开机(或重起)的时候系统才能够收回。
内存泄漏会因为减少可用内存的数量从而降低计算机的性能。最终,在最糟糕的情况下,过多的可用内存被分配掉导致全部或部分设备停止正常工作,或者应用程序崩溃。
  内存泄漏可能不严重,甚至能够被常规的手段检测出来。在现代操作系统中,一个应用程序使用的常规内存在程序终止时被释放。这表示一个短暂运行的应用程序中的内存泄漏不会导致严重后果。
  在以下情况,内存泄漏导致较严重的后果:
  * 程序运行后置之不理,并且随着时间的流失消耗越来越多的内存(比如服务器上的后台任务,尤其是嵌入式系统中的后台任务,这些任务可能被运行后很多年内都置之不理);
  * 新的内存被频繁地分配,比如当显示电脑游戏或动画视频画面时;
  * 程序能够请求未被释放的内存(比如共享内存),甚至是在程序终止的时候;
  * 泄漏在操作系统内部发生;
  * 泄漏在系统关键驱动中发生;
  * 内存非常有限,比如在嵌入式系统或便携设备中;
  * 当运行于一个终止时内存并不自动释放的操作系统(比如AmigaOS)之上,而且一旦丢失只能通过重启来恢复。

new delete 不一定发生在构造和析构,程序运行过程中发生的,你能及时弥补吗?
2010-03-26 13:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-299479-1-1.html




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

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