最近一个项目中,程序退出后,每次都出现内存泄漏,每次退出的时候泄露的内存块都是1654,1650。
Detected memory leaks!
Dumping objects ->
{1654} normal block at 0x01CC1B28, 40 bytes long.
Data: 54 00 69 00 63 00 6B 00 65 00 74 00 20 00 69 00
{1650} normal block at 0x01CC1BF0, 16 bytes long.
Data: 64 6B E8 95 68 79 0D 4E FD 80 7F 4F 28 75 00 00
Object dump complete.
解决方法
1、在程序开始的地方,加上代码:_CrtSetBreakAlloc(1654); //1654为上面内存泄漏的块号。
2、用Debug模式运行,程序自动断点在“内存块1654”分配的位置。
3、这个时候一直利用“调试”-“退出”,或快捷键“SHIFT+F11”跳转,直到看到了自己的代码。
4、检查自己在该代码中分配的内存块,是否进行了合理的释放。
本文介绍了一种解决程序退出时特定内存块(如1654,1650)泄漏的方法,通过设置_CrtSetBreakAlloc来定位泄漏源,并在调试模式下追踪到具体的代码位置,最终检查并修复内存释放问题。
3830

被折叠的 条评论
为什么被折叠?



