MFC编程实例:关于MFC下检查和消除内存泄露的技巧
小职 2018-03-08 来源 :网络 阅读 2054 评论 0

摘要:本文将为大家讲解关于MFC编程实例中MFC下检查和消除内存泄露的技巧,通过MFC编程实例的内容让你对相关知识点有进一步的认识和理解!

    本文将为大家讲解关于MFC编程实例中MFC下检查和消除内存泄露的技巧,通过MFC编程实例的内容让你对相关知识点有进一步的认识和理解!


  本文分析了Windows环境使用MFC调试内存泄露的技术,介绍了在Windows环境下用VC++查找,定位和消除内存泄露的方法技巧。 

  关键词:VC++;CRT 调试堆函数;试探法。

  技术原理

  检测内存泄漏的主要工具是调试器和 CRT 调试堆函数。若要启用调试堆函数,请在程序中包括以下语句: 


#define CRTDBG_MAP_ALLOC
#include
#include


  注意 #include 语句必须采用上文所示顺序。如果更改了顺序,所使用的函数可能无法正确工作。 

  通过包括 crtdbg.h,将 malloc 和 free 函数映射到其“Debug”版本_malloc_dbg 和_free_dbg,这些函数将跟踪内存分配和释放。此映射只在调试版本(在其中定义了 _DEBUG)中发生。发布版本使用普通的 malloc 和 free 函数。

  #define 语句将 CRT 堆函数的基版本映射到对应的“Debug”版本。并非绝对需要该语句,但如果没有该语句,内存泄漏转储包含的有用信息将较少。

  在添加了上面所示语句之后,可以通过在程序中包括以下语句来转储内存泄漏信息:


_CrtDumpMemoryLeaks();


  当在调试器下运行程序时,_CrtDumpMemoryLeaks 将在“输出”窗口中显示内存泄漏信息。内存泄漏信息如下所示:


Detected memory leaks!

Dumping objects ->

C:PROGRAM FILESVISUAL STUDIOMyProjectsleaktestleaktest.cpp(20) : {18} normal block at 0x00780E80, 64 bytes long.

Data: <        > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD

   

希望这篇MFC编程文章可以帮助到你。总之,同学们,你想要的职坐标MFC频道都能找到!

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 4 不喜欢 | 1
看完这篇文章有何感觉?已经有5人表态,80%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程