内存泄漏的原因是什么
1。在创建的GDI对象,如LoadIcon、LoadImage、createimagelist,等等,没有破坏
2。在建立特区,如GetDC(),无直流手放开
3.new,malloc没有删除,免费
4。创建内核对象(如CreateFile,CreateMutex,CreateThread),和不释放内核对象句柄。
5。创建一个内存映射文件,CreateFileMapping,CloseHandle,UnMapviewofFile mapviewoffile无()
6。保留的虚拟地址空间(VirtualAlloc),然后提交物理内存,不释放
内存泄漏的解释
简单地说,内存空间的应用在使用之后不会被释放,其一般的表现方式是程序运行时间越长,内存越多,整个内存的结束,整个系统就崩溃了,程序应用的内存没有指针指向内存,内存就泄露了。
分类泄漏
在分类方法中,内存泄漏可以分为4类:
(1)。一次性内存泄漏。
内存泄漏代码只执行一次,或者由于算法的缺陷,总是会有一块内存泄漏。例如,内存是在类的构造函数中分配的,但是内存在析构函数中没有释放,所以内存泄漏只会发生一次。
(2)。内隐记忆泄漏。
程序不停地分配内存,在操作过程中,但它不是直到项目结束释放内存。严格地说,在这种情况下没有内存泄漏,因为最终的应用程序释放内存,但是对于一个服务器程序,它将需要几天,几周甚至月去释放它,它最终会导致系统的记忆所有的疲惫。所以,我们称这种内存泄漏是一个隐式内存泄漏。
(3)。频繁内存泄漏。
具有内存泄漏的代码将多次执行,每次执行时,都会导致内存泄漏。
(4)。偶然记忆泄漏。
内存泄漏的代码只发生在特定的环境或操作中,常数和散点是相对的,对于特定的环境,偶尔发生的情况可能成为常数,因此测试环境和测试方法对检测内存泄漏至关重要。
事实上,在看到上面的介绍,我们可以看到,事实上,内存泄漏不仅有自身素质的原因,也是我们业主的错误使用。因此,建议如果你想存储更重要的东西,最好是买一些质量较好的记忆卡,它是最好的朋友,以提高它们的使用和延长使用寿命。例如,不要反复保存,删除,最好能保存在一个时间,当你使用它的计算机上,试图杀死它,然后把它拔出来。我希望以上的内容会帮助你。