首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用了new,没delete,函数结束,动态分配的内存会还给系统吗

2013-06-26 
用了new,没有delete,函数结束,动态分配的内存会还给系统吗?void a(){int *i new int}如此,a()被调用然

用了new,没有delete,函数结束,动态分配的内存会还给系统吗?
void a()
{int *i = new int;
}

如此,a()被调用然后结束,其中用new动态分配的空间会还给系统吗?
[解决办法]
用了new,释放的时候就要用delete。除非程序执行完成,否则系统不会主动帮你把资源还给系统
[解决办法]
如是你的程序反复调用的话,new 的内存越来越多,最终内存资源会耗尽,
[解决办法]
进程结束才会还给系统。

这样是造成了内存泄漏
[解决办法]
结束时还给系统,若是在一个大的系统中,系统长时间运行,且这句话在一个循环中的话,那就有大麻烦了!
[解决办法]
win98时代,程序运行结束,没有回收的资源,包括内存,会造成操作系统资源泄漏,可用资源越来越少,操作系统崩溃,XP要好一点的,基本不会出现了;

进程结束,一切系统资源,会被回收。也包括内存。

不过,资源不用时就回收,是个好习惯。

热点排行