2021-04-22

VC 内存泄漏 {157} normal block at 0x00E0DAE0, 64 bytes long.的解决办法

{157} normal block at 0x00E0DAE0, 64 bytes long.
 Data: <P   (           > 50 DB E0 00 28 DF E0 00 90 DF E0 00 F8 DF E0 00 

vc程序在的debug时,会输出如上的内存泄露提示。在一般情况下,上述提示应该是带有源文件与行号信息,我们便可以依据源文件及行号信息,定位到new的地方,从而进行相应的解决。

但是,在有些情况下,如上,只提示内存泄漏,没有定位信息,这时我们往往就只能靠经验了。不过,微软的孩子们早就意识到这个问题,因此也给出了解决方案,那就是:

注意到开头的花括号里的数字了吗,这是一个顺序号,我们可以通过这个顺序号,找到分配内存的地方,与“源文件+行号”信息无二。

借助函数:_CrtSetBreakAlloc(no.);

步骤:

1、在CxxApp::CxxApp()中加入:

     _CrtSetBreakAlloc(157.);

2、去掉其他断点,以Debug模式启动,

3、执行相关操作,等待程序触发断点,

4、从调用堆栈call stack找到我们分配内存的地方

5、解决问题...

完美了~~ 2021.04.22于雄安新区...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值