99问答网
所有问题
C++通过new分配的内存需不需要在程序退出前delete?
系统会不会在整个程序运行完毕后自动回收内存?还是需要程序自己delete?
举报该问题
推荐答案 2009-07-18
当然会自动回收。
不过就编程本身来说,每个new都应该有相应的delete。 这是必要的习惯
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/Wt7jteWWz.html
其他回答
第1个回答 2009-07-18
平时写的小程序里面不delete一般不会有什么错误
系统会自动回收,但是要养成有new就有delete的习惯
如果都指望希望回收的话,可能由于内存泄漏而执行不到程序运行完毕就崩溃掉本回答被提问者采纳
第2个回答 2009-07-18
在退出程序时它会自动清除内存的,DELETE是在你执行这语句时清除。
第3个回答 2009-07-18
new是在堆上分配内存的,不运行delete会发生内存泄露
相似回答
C++
中
new
之后的内容一定
要delete
吗?
答:
恩,
new分配的内存在堆上,必须程序员自己用delete
,而局部变量和函数参数分配的内存在堆栈上,自动释放,由系统完成。在堆上分配的内存不用delete释放,就是我们常说的内存泄漏。
在
C++
中,
用new
动态申请
的内存
空间,是否必须
用delete
来释放?
答:
可以不释放,但是会耗掉
内存
,要释放就只能
用delete
C++
中有
new
就必须
要
有
delete
吗?
答:
加减乘除啊什么的,
当你用完它,并且以后再也用不到的时候,你必须delete掉它
,因为函数离开后,你找不到a指针了,你永远也没法用这块内存了,这4个字节的内存被永远占着,系统一直觉得你还要用到这块内存,
c++
新人问题
答:
new分配出来的内存一定要记得使用delete释放掉
,虽然在程序退出的时候操作系统会自动释放,但如果你的程序一直循环(项目中的程序一般都是死循环的,全天24小时跑着),不断的new而没有delete,则会让程序占用的内存越来越多,最后系统挂掉。p=NULL; 这句话实际不是很必要,但是在编码规范中一般都有提到...
c++
写链表时
new
生成的节点
在程序
结束时
需要
释放吗
答:
不是
要在程序
结束事释放,是在一个节点不再需要的时候就释放。比如删除一个节点,不只是把它从链表移除,还有
delete
它。之所以要这么做是因为你如果不手动delete它,知道程序结束前,它会继续占用
内存
,如果是一个大程序,这样运行久了,可能内存就没了。程序结束的时候是不用释放的,因为系统会回收这些...
C++
中
new
出来的对象,
不delete
的话,会怎么样?
答:
回答追问: main函数执行完,函数
退出
,
进程
结束,所有进程占用
的内存
都会被释放,包括泄露的内存。main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露的内存。
C++
是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化...
c++
编程中,
用new
动态
分配内存
后,不使用
delete
,被
分配的内存
会永远丢失吗...
答:
在
C++
中可以
用new
和malloc在堆上申请空间,并且必选相应地
用delete
和free进行释放空间,因为在C++编译器中,堆这部分存储空间是完全由程序员自己管理的,即由程序员自己
分配
和释放。如果
在程序
中用new和malloc申请了空间的话,但是在程序中没有手动用delete和free释放空间的话,在程序执行过程中以及程序执行...
在
C++
中,
用new
申请了指针指向某
内存
却
不用delete
销毁,直到整个应用
程序
...
答:
会导致
内存
泄露。操作系统管理内存,是有一个资源队列的,
用new
申请一块内存时,从可用资源中取一块可用资源
分配
给应用
程序
。如果没有
用delete
归还系统,这块内存就不会返回资源队列,无法再分配给其他应用程序。就好像你从图书馆借书,结果看完后你自己把书放回书库,没有在图书管理系统中体现出来这本书...
c++
中
用new分配的内存不delete
的话,
程序
结束后,内存会否丢失?
答:
如果你
程序退出
的话,肯定是要还给系统的;如果你说的有后台运行的意思,
内存
是不会释放的.
大家正在搜
new分配的内存在堆
new分配的内存空间在哪
new分配的内存空间是连续的吗
new分配的内存
new malloc内存分配
由new运算符分配的内存空间
new的内存上再new
new分配内存失败会返回啥
数据结构new分配内存