内存泄漏是个大问题 。 而且很难解决。
××××××××××××××××××××××××××××××××××
解决方式目前大致分为两种:一是使用被人写的 专业软件,二是自己找。
××××××××××××××××××××××××××××××××××××××××××
自己找有分为多种: 最容易上手的就是 搜索 new malloc ,看看有没有落单的,
稍微复杂的就是使用编译器提供的一些函数。
×××××××××××××××××××××××××
Windows平台下面Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的有效方法,
原理大致如下:内存分配要通过CRT在运行时实现,只要在分配内存和释放内存时分别做好记录
,程序结束时对比分配内存和释放内存的记录就可以确定是不是有内存泄漏。在vs中启用内存检测的方法如下:
第一步:在程序中包括以下语句: (#include 语句必须采用上文所示顺序。 如果更改了顺序,所使用的函数可能无法正常工作。)
#define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h>
第二步:使用相关的函数
_CrtDumpMemoryLeaks(); 把这个函数放在你想检测的地方。 如果有内存泄漏 就会编译器的调试模式下 把内存泄露的相关的信息显示在输出栏
废话说了 试一下
时间: 2024-12-09 02:56:27