nnpc.net
当前位置:首页 >> 内存泄漏什么意思 >>

内存泄漏什么意思

内存泄漏 (Memory Leak) 也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元.直到程序结束.(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏.内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃.所以“内存泄漏”是从操作系统的角度来看的.这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区设定的大小.由程序申请的一块内存,如果没有任何一个指针指向它,那么这块内存就泄漏了.

简单地说就是申请了一块内存空间,使用完毕后没有释放掉.它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃.由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了.

内存泄漏内存泄漏也称作"存储渗漏",用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元.直到程序结束.(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏.内存泄漏形象的比喻是"操作系统可提供给所有进程的存储空间正在被某个进程榨干",最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃.所以"内存泄漏"是从操作系统的角度来看的.这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区设定的大小.由程序申请的一块内存,如果没有任何一个指针指向它,那么这块内存就泄漏了.

一般我们常说的内存泄漏是指堆内存的泄漏.堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存.应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了.

选D项,实际上是堆内存分配后,至最终都没有被回收,始终被占用 最典型的例子是使用new分配内存,在整个程序中一直没有使用delete销毁,这就造成了使用new分配的那部分堆内存始终被占用(没有被释放)

内存泄漏的定义: 对象不再被应用程序使用,但是垃圾回收器却不能移除它们,因为它们正在被引用.如何阻止内存泄漏?以下是一些阻止内存泄漏的快速动手技巧.(1)注意集合类,例如HashMap,ArrayList,等等.因为它们是内存泄漏经常发生的地方.当它们被声明为静态时,它们的生命周期就同应用程序的生命周期一般长.(2)注意事件监听器和回调,如果一个监听器已经注册,但是当这个类不再被使用时却未被注销,就会发生内存泄漏.(3)“如果一个类管理它自己的内存,程序员应该对内存泄漏保持警惕.”[1] 很多时候当一个对象的成员变量指向其他对象时,不再使用时需要被置为null.希望这个回答对你有帮助

比如说你有一个Delphi写的应用程序叫Test.exe.在里面你动态分配了1M内存,而你的机器在运行这个Test.exe之前有空余内存100M,如果你动态分配的内存没有正确释放,那么当你的这个应用程序运行结束的时候,这部分内存就会变成无主的

百度百科 内存泄露:一般我们常说的内存泄漏是指堆内存的泄漏.堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放的内存.应用程序一般使用malloc,calloc,realloc,new等函数从堆中分

当你用new创建了一个对象或数组,或malloc申请了一块内存,程序结束前没有DELETE释放它,我们说这个内存就泄漏了,如果一个程序中这样情况很多,当程序运行时泄漏的内存会积累到一定程度(比如一个N次循环出现泄漏),系统就会报内存不足.而如果你定义了一个指针指向一个这样的内存块,释放掉内存后,没有将指针赋值为null,这个指针就是野指针,下次用这个指针操作时就容易出问题,甚至程序崩溃.简单滴说,用过之后没还给系统的内存叫内存泄漏 ; 原先指向一块内存的指针,当内存已经释放回收,而指针还是指向它,这就是没娘的孩子,就是野孩子.

内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元.直到程序结束.(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏.内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃.所以“内存泄漏”是从操作系统的角度来看的.这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区设定的大小.由程序申请的一块内存,如果没有任何一个指针指向它,那么这块内存就泄露了.

网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com