c++中用new分配的内存不delete的话,程序结束后,内存会否丢失?

具体说一下Linux 系统会怎么做,谢谢
我是想说,程序已经不运行了,在它运行的时候没释放内存,然后程序不运行了以后,我当时用new动态分配的内存何去何从了啊??

谁说的是对的呢,这块内存系统释放掉,可以给其他程序使用,还是必须系统重新启动啊???
还是不知道谁说的可靠啊?
还有高手没

第1个回答  2010-05-14
如果你程序退出的话,肯定是要还给系统的;如果你说的有后台运行的意思,内存是不会释放的.
第2个回答  2010-05-14
还在占用系统的内存。
别的程序不能使用者一块内存
除非系统系统重新启动
第3个回答  2010-05-14
new delete 是libc提供的,进程退出后,操作系统会自动回收本回答被提问者采纳
第4个回答  2010-05-14
最好还是自己释放。

c++中用new分配的内存不delete的话,程序结束后,内存会否丢失?
如果你程序退出的话,肯定是要还给系统的;如果你说的有后台运行的意思,内存是不会释放的.

c++编程中,用new动态分配内存后,不使用delete,被分配的内存会永远丢失吗...
在C++中可以用new和malloc在堆上申请空间,并且必选相应地用delete和free进行释放空间,因为在C++编译器中,堆这部分存储空间是完全由程序员自己管理的,即由程序员自己分配和释放。如果在程序中用new和malloc申请了空间的话,但是在程序中没有手动用delete和free释放空间的话,在程序执行过程中以及程序执行...

在C++中,用new申请了指针指向某内存却不用delete销毁,直到整个应用程序...
会导致内存泄露。操作系统管理内存,是有一个资源队列的,用new申请一块内存时,从可用资源中取一块可用资源分配给应用程序。如果没有用delete归还系统,这块内存就不会返回资源队列,无法再分配给其他应用程序。就好像你从图书馆借书,结果看完后你自己把书放回书库,没有在图书管理系统中体现出来这本书...

C++中new出来的对象,不delete的话,会怎么样?
回答追问: main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露的内存。main函数执行完,函数退出,进程结束,所有进程占用的内存都会被释放,包括泄露的内存。C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化...

C++ 中关于new和delete使用的一些疑问
这个要看你的程序。反正你要知道,new的内存如果不delete,该程序结束之前,这个内存不会释放掉。也就是说如果你的程序中常常new一些内存而不delete,你的程序占用的内存会不断增大。但是有一些全局数据,可以new了不delete,在程序开始运行时,创建这些数据,程序运行过程中使用这些数据,直到程序结束。A3....

C++中用new开辟了空间,忘记用delete了,造成的内存泄露该怎么解决(越...
如果不多的话无所谓,实际上不会有啥影响,随着程序的退出该空间会自动释放。如果程序不停的申请内存空间而又不释放的话,很有可能造成程序异常退出或者将内存消耗完毕。

C++中new之后的内容一定要delete吗?
恩,new分配的内存在堆上,必须程序员自己用delete,而局部变量和函数参数分配的内存在堆栈上,自动释放,由系统完成。在堆上分配的内存不用delete释放,就是我们常说的内存泄漏。

用new分配的内存在程序结束时是不是由系统回收了啊?
所以就算你在程序中new一些空间没delete,程序退出时操作系统会回收所有的空间的 不过好习惯就是new出来的空间用完后就delete,如果你的程序是需要长时间运行的,new空间而不释放将会导致系统可用内存非常紧张,那操作系统就要频繁地进行换行操作了,这样一来系统性能就降低了 ...

C++中有new就必须要有delete吗?
当你用完它,并且以后再也用不到的时候,你必须delete掉它,因为函数离开后,你找不到a指针了,你永远也没法用这块内存了,这4个字节的内存被永远占着,系统一直觉得你还要用到这块内存,我们把这个叫做内存泄漏,这样泄漏的地方多了,你的程序占用的内存会越来越大,最后占满电脑内存,导致程序崩溃 ...

关于C++ new以及多线程的生存期问题
1.用new分配的内存在整个程序结束之后不再占用内存,道理很简单,因为程序结束了,意味着进程结束了,一个进程结束后操作系统会清理该进程所占用的所有资源。2.这个问题要分情况讨论。一:main函数正常返回(也就是运行到main函数的return),主线程结束,此时如果其他线程还没有执行完毕,那么这些子线程...

相似回答