在计算机科学中,内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习惯于把任何不需要的内存使用的增加描述为内存泄漏,严格意义上来说这是不准确的。 一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
1、内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。
2、一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的,
使用完后必须显式释放的内存。应用程序一般使用malloc,calloc,realloc,new等函数从堆
中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则
这块内存就不能被再次使用,就是这块内存泄漏了。
3、内存泄露多数属于程序本身设计问题,有以下几种解决方法:
1)从程序内部重新编译。养成良好的编码习惯,尽量在涉及内存的程序段,检测出内存泄露。
2)结束程序,内存自然就会被 *** 作系统回收。
3)重新启动电脑后,立刻恢复。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)