| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1581 人关注过本帖
标题:关于c++中new 和 delete的问题
只看楼主 加入收藏
wghost
Rank: 2
等 级:论坛游民
帖 子:47
专家分:31
注 册:2009-6-6
结帖率:37.5%
收藏
已结贴  问题点数:10 回复次数:14 
关于c++中new 和 delete的问题
   我们都知道用new可以在堆中为程序开辟空间,但是如果程序在结束之前未对new开辟的空间用delete删除,是否可以啊??程序结束运行时是不是自动把new开辟的空间释放了??
   那位高手帮忙解答一下!!
搜索更多相关主题的帖子: new delete 
2010-03-15 12:45
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:2 
delete应该理解为释放,

不释放可以 但是很危险!
2010-03-15 13:36
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
收藏
得分:5 
    在程序中用到NEW分配内存空间时,运行结束得 时候一定要用delete来释放分配的内存空间,如果你不释放得话系统的内存将会减少,一两个程序这么做可能没有什么,但是如果所以得程序都这么干得话,那就有得玩咯。内存时及其宝贵得资源啊。我们不能有借不还啊。。。(我想在你下次开机的时候那内存应该回来了吧,我个人想的哦,错了大家指正一下呵呵)

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-03-15 15:39
秀痘魔导士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:250
专家分:1150
注 册:2009-12-23
收藏
得分:0 
以下是引用ltyjyufo在2010-3-15 15:39:00的发言:

    在程序中用到NEW分配内存空间时,运行结束得 时候一定要用delete来释放分配的内存空间,如果你不释放得话系统的内存将会减少,一两个程序这么做可能没有什么,但是如果所以得程序都这么干得话,那就有得玩咯。内 ...
程序结束后自动释放
2010-03-15 15:43
wei0000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:80
专家分:136
注 册:2010-3-12
收藏
得分:0 
4楼说的对啊
2010-03-15 16:00
mghxz252
Rank: 2
等 级:论坛游民
帖 子:40
专家分:60
注 册:2010-1-18
收藏
得分:0 
应该是程序结束的时候会自动释放,但是如果你的程序比较大的话,那就有的玩了。
2010-03-15 16:41
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1507
专家分:9241
注 册:2010-3-16
收藏
得分:0 
new出来的空间一直会保留到delete或者程序结束。

如果new出来的空间比较大,用完后不delete,那么n个new之后,你会发现内存空间不够用了,严重的会导致系统奔溃。
2010-03-17 18:02
ltyjyufo
Rank: 9Rank: 9Rank: 9
来 自:未来
等 级:蜘蛛侠
威 望:2
帖 子:353
专家分:1166
注 册:2009-10-25
收藏
得分:1 
       如果程序结束后会自动释放的话,那要delete来做什么????????我觉得系统在没有关机之前是收不回分配出去的内存的(不用delete释放的话),只有在下次开机(或重起)的时候系统才能够收回。

翱翔天空的雄鹰固然令人羡慕,却容易被禁锢于牢笼之中,只有那夜色中的蝙蝠才是真正自由的飞翔者....
2010-03-18 18:06
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:1 
用delete这是一个习惯  程序结束后 内存就将释放 啥都没了 !
2010-03-18 19:46
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:1 
回复 8楼 ltyjyufo
这个跟操作系统有关系,在XP里,你没用delete去释放,程度结束了,系统也会把那些内存回收回去。自己写段代码再调出资源管理器察看验证下。

迭代的是人,递归的是神。
2010-03-20 11:16
快速回复:关于c++中new 和 delete的问题
数据加载中...
 
   



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

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