99问答网
所有问题
为什么有的程序用new分配内存后不用delete释放?它不怕内存泄漏吗?
如题所述
举报该问题
推荐答案 2012-01-08
我可以很负责任的告诉你,使用了new是一定要用delete的
不然就会有内存泄露
如果你没有看到,那说明可能是你没有找到,其实它用了,只不过在很隐蔽的地方
因为,很多程序都有自己的一套内存管理模块
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/z7etzzv7v.html
其他回答
第1个回答 2012-01-08
内存释放分两种:显示和隐式释放
隐式:当执行的程序退出时,系统会自动回收相应的内存等程序运行中所使用的资源。
显示:调用delete来完成。
不推荐隐式习惯!因为很多程序常驻内存,时间长了造成系统崩溃。
第2个回答 2012-01-08
当然不用del,程序退出系统也会收回的,怕啥.以前内存几m,程序员自然要节省了,用完就释放,现在就随便了.
第3个回答 2012-01-08
用new分配的内存,就一定得用delete释放。没什么好商量的。
第4个回答 2012-01-08
你看的代码够权威吗,如果够,我只能说它肯定有自己的释放和析构机制。
否则,我只能怀疑代码的完善性。
1
2
下一页
相似回答
...
用new
创建指针后,
为什么不用delete
来删除指针呢
???
谢谢!
答:
用new分配空间后不一定就要用delete来释放,delete操作不是必需的
。但这样会造成内存泄漏,如果是什么重要的信息的话,这些信息就可以用某种工具或方式被盗出来。
C++中
new
之后的内容一定要
delete吗?
答:
恩,
new分配的内存在堆上,必须程序员自己用delete,而局部变量和函数参数分配的内存在堆栈上,自动释放,由系统完成
。在堆上分配的内存不用delete释放,就是我们常说的内存泄漏。
QT
new
控件,但不
delete
,
为什么
没
有内存
泄露
答:
这种父子对象机制会在很大程度上简化我们的内存管理工作,减少内存泄露的风险
。我们需要显试删除(就是用DELETE删除)的对象是那些使用NEW创建的并且没有父对象的对象(切记是new的才要delete,通过成员函数获得的对象,没有特殊说明的,千万不要随便delete.)。如果我们在删除一个对象的父对象之前删除它,QT会...
在C++中,
用new
申请了指针指向某
内存
却
不用delete
销毁,直到整个应用
程序
...
答:
会导致内存泄露
。操作系统管理内存,是有一个资源队列的,用new申请一块内存时,从可用资源中取一块可用资源分配给应用程序。如果没有用delete归还系统,这块内存就不会返回资源队列,无法再分配给其他应用程序。就好像你从图书馆借书,结果看完后你自己把书放回书库,没有在图书管理系统中体现出来这本书...
下面代码有
new
,但没
有delete
,可以么?是不是应该在最后加上一个delete...
答:
动态申请数组才
需要delete
[] dp;这样释放的 也就是说,如果你 int *p=
new
int[20];这样才需要delete[]p;而你上面
的程序
是动态申请了一个类对象的指针 因此
使用delete
的时候只要 delete dp;即可
C++通过
new分配的内存
需不
需要
在
程序
退出前
delete?
答:
当然会自动回收。不过就编程本身来说,每个
new
都应该有相应
的delete
。 这是必要的习惯
C++中有
new
就必须要
有delete吗?
答:
当你用完它,并且以后再也用不到的时候,你必须
delete
掉它,因为函数离开后,你找不到a指针了,你永远也没法用这块内存了,这4个字节的内存被永远占着,系统一直觉得你还要用到这块内存,我们把这个叫做
内存泄漏
,这样泄漏的地方多了,你
的程序
占用的内存会越来越大,最后占满电脑内存,导致程序崩溃 ...
C++中
new
出来的对象,不
delete
的话,会怎么样?
答:
回答追问: main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露
的内存
。main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露的内存。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化...
我
使用
vs2005 编辑mfc
程序
,是否所有
的new
都要
delete
呢?
答:
所有
使用new分配内存
的对象,都需要进行delete处理,不然会引起
内存泄漏
。这是VS2005的新特性。没有通过new建立的对象都不必要
用delete
。其实在c里面就已经有这样的思想了,malloc也要用free
释放不
是吗?CSock uSock;int a;这些没有new的不必delete。在当前块执行完毕后,编译器它会自动帮你消除。
大家正在搜
new分配的内存空间是连续的吗
用程序查看可分配内存
new分配的内存
new分配的内存在堆
new分配的内存空间在哪
new malloc内存分配
由new运算符分配的内存空间
new的内存上再new
new分配内存失败会返回啥
相关问题
Java 语言写的程序会不会内存泄漏
为什么编译器提供的new不能定位到内存泄漏?
c++编程中,用new动态分配内存后,不使用delete,被...
在c++中,释放new分配的内存空间时,使用delete和d...
下面代码有new,但没有delete,可以么?是不是应该在最...
C++中new出来的对象,不delete的话,会怎么样?
C++题:关于动态存储分配,下列说法正确的是?
内存泄漏是指_______