CMemoryState的使用看内存监测

确切的说,在C++中对内存的管理是挺复杂的,申请内存的同时也必须记得释放内存,new匹配delete, new[]匹配delete[].还有更困难的是
在涉及到组模(Module),这点暂不讨论,等我搞清楚后会和大家分享。现在先说一下CMemoryState,如有什么不足之处,或者是错误的地方,
请各位看官不吝赐教,谢谢。
在MFC中,可以使用CMemoryState检测内存泄露,内存的泄露是由于程序在内存分配和检索中错误使用了C++的new或delete操作符导致的。我
们可以创建CMemoryState对象,来快速查看当前内存的分配情况,不多说了,直接代码吧!
1. 没有 delete.
1.  CMemoryState oldMem, newMem, difMem; 
2.  oldMem.Checkpoint(); // 检测当前的内存使用情况 
3.  char* c = new char[6]; 
4.  TRACE0("1-------------------/n"); 
5.  oldMem.DumpAllObjectsSince(); // oldMem就检测到这里 
6.  TRACE0("2-------------------/n"); 
7.  newMem.Checkpoint(); // 没有delete[] c 
8.  if (difMem.Difference(oldMem, newMem)) // 比较 
9.  { 
10. TRACE0("Memory Lack!/n"); 
11. } 
12. TRACE0("3-------------------/n"); 
13. difMem.DumpStatistics(); // 在Output中打印结果 
TRACE0("4-------------------/n"); 
Outp
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值