`
izuoyan
  • 浏览: 9220001 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

实用小代码之内存泄漏检测

阅读更多
<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE"> <meta content="OpenOffice.org 2.3 (Linux)" name="GENERATOR"> <style type="text/css"> <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> </style>

实用小代码之内存泄漏检测


相信很多人在用C语言编写程序时,常常会用到动态内存分配的函数。而使用这样的函数,往往会一不留神就造成内存泄漏。虽然说世面上有很难多检查内存泄漏的工具,功能也很强大。不过我平时用的简单检测方式是使用我这里介绍的这三个函数。相对来说,还是比较不错的,也是一种解决内存泄漏问题的方法之一吧。


int*_mem_check(void)...{
staticintc=0;
return(&c);
}

void*_malloc(ints)...{
int*c=_mem_check();
void*p=malloc(s);
if(p)...{
(
*c)++;
}

return(p);
}

void_free(void*p)...{
int*c=_mem_check();
free(p);
if(p)...{
(
*c)--;
}

return;
}

<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE">

<meta content="OpenOffice.org 2.3 (Linux)" name="GENERATOR"> <style type="text/css"> <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> </style>

代码很简单,基本上不用做太多的解释。只要在程序退出之前查看一下计数器的计数是否为0就可以了。如果是0的话,那很好,你所写的代码没有内存泄漏。如果不为0的话,这个计数器的数,就是记录了你有多少个内存分配没有在程序退出前回收。

下面是事例代码:

intfun(void)...{
void*p=NULL;
int*c=_mem_check();
p
=_malloc(1024);
_free(p);
printf(
"%d ",*c);
return(0);
}


文外音:
说实话,我的Blog很久没有更新了。说来也惭愧,这一阶段真的很忙。原本的生活也被打乱了。上面这些东西,都是我平时写程序的时候常会用到的一些代码。觉得蛮实用的就贴出来和大家分享一下。
不过话说回来,近阶段发生的事情还真不少。前些日子我一同学买东西,被黑心老板找了张假的20元,因为当时天冷急着回去。所以没仔细看就收进了。事后我们和他理论,那黑心老板居然还一脸坏笑地大声说:“哦,这是张假币啊。是假币哦。这张假币不是我们这里出来的。”那表情我这一辈子也忘不了,意思就是说:我就是要把假币混给你,你能拿我怎么办。当时很气愤,想报警的,因为使用假币也是属于违法行为。但是后来想想为了20元也犯不着。其实到也不是说20元的损失有多大,只是实在是对他们那种态度和素质感到令人作呕。

北斗星君(黄庠魁)

分享到:
评论

相关推荐

    vs2010内存泄露检查工具

    标题中的“vs2010内存泄露检查工具”指的是Visual Leak Detector(VLD),这是一个为Visual C++编译器设计的插件,它可以在运行时检测并报告C++程序中的内存泄漏情况。VLD能够集成到VS2010的环境中,使得开发者可以...

    windows下c++内存泄露检测工具使用方

    通过上述示例可以看出,VLD 是一个非常实用的内存泄露检测工具。它不仅可以帮助开发者检测内存泄露问题,还能提供详细的错误报告,包括内存泄露的位置、大小以及分配时的具体情况等信息,极大地提高了调试效率。此外...

    程序内存泄漏检测库,很实用

    "程序内存泄漏检测库,很实用"这个标题暗示了存在一种工具或库,专门用于检测程序中的内存泄漏。这类工具通常通过插入到编译流程中,或者作为运行时库动态链接,以便在程序运行过程中监控内存分配和释放的情况。它们...

    介绍几款 C/C++内存泄漏检测工具.帮程序员擦屁股用

    本文将详细介绍几款实用的C/C++内存泄漏检测工具,帮助程序员有效地找出并修复内存泄漏。 1. **AddressSanitizer (ASan)** AddressSanitizer是一个由Google开发的高效内存错误检测工具,包括检测堆、栈、全局变量...

    内存泄露检测工具--VisualLeakDetector

    1. 自动检测:无需修改代码,只需在编译时链接VLD库,即可在运行时启用内存泄露检测。 2. 详细报告:VLD可以生成详细的内存泄露报告,包括内存泄露的位置、大小以及分配时的堆栈跟踪信息。 3. 跨线程检测:支持多...

    有效的C++内存泄露检测方法.pdf

    ### 有效的C++内存泄露检测方法 #### 摘要 本文提出了一种针对C++程序的高效内存泄漏检测方法。该方法通过深入分析内存泄漏现象,并重新实现了动态内存分配和释放函数,能够准确记录每次内存分配的具体位置,并对...

    CheckMen 测试 Delphi内存泄漏工具

    2. 在需要检查内存泄漏的代码段前后调用CheckMen提供的接口函数,例如在程序启动时开启监控,在程序退出或特定点停止监控。 3. 运行程序后,CheckMen会在程序的当前目录下生成`CheckMemory.Log`日志文件。这个日志...

    iOS内存泄漏检测器

    "iOS内存泄漏检测器"是一个实用工具,利用运行时机制帮助开发者在开发阶段就能检测出NSObject及其子类中的循环引用和其他内存泄漏问题,从而提高代码的健壮性和应用的稳定性。 首先,我们要理解内存泄漏的基本概念...

    一个PHPUnit插件可以检测经过测试的代码或测试中的内存泄漏

    标题中的“一个PHPUnit插件可以检测经过测试的代码或测试中的内存泄漏”指的是在PHP开发过程中,使用PHPUnit作为测试框架时,有一款插件能够帮助开发者检测被测试代码或者测试用例自身是否存在内存泄漏问题。内存...

    ie内存泄露监控软件

    3. **泄漏定位**:当检测到内存泄露时,工具能够定位到具体的代码行,帮助开发者精准定位问题源头。 4. **内置IE浏览器**:描述中提到该软件内置了IE浏览器,这意味着用户可以在同一环境中进行测试和调试,无需额外...

    内存泄漏检测工具 Visual Leak Detector 2.3 (vld)

    总的来说,Visual Leak Detector是一个强大且实用的工具,它为C++开发者提供了一种有效检测和解决内存泄漏问题的方法。通过集成到Visual Studio环境中,开发者可以实时查看内存状态,及时发现并修复潜在的内存泄漏...

    使用 CRT 调试功能来检测内存泄漏

    总结来说,利用CRT调试功能检测内存泄漏是一种实用且有效的办法。通过开启调试标志、使用调试版内存分配函数以及适时进行内存泄漏检查,开发者可以及时发现并修复内存泄漏问题,从而提高程序的稳定性和性能。在实际...

    Visual Leak Detector-C++内存泄露检测工具

    总的来说,Visual Leak Detector是C++开发中的一款实用工具,对于提高代码质量,防止因内存泄漏导致的程序崩溃或性能下降有着重要作用。通过使用VLD,开发者可以更加专注于代码逻辑,而无需过于担心内存管理的问题。...

    java内存泄漏分析工具

    Java内存泄漏是一个严重的问题,它会导致程序性能下降,甚至可能导致应用程序崩溃。为了有效地诊断和解决这类问题,开发者需要借助...在日常开发中,定期进行内存分析并结合代码审查,是预防和解决内存泄漏的关键步骤。

    C和C++内存管理资料(包括内存管理-内存泄漏-内存调试-内存检测方法)

    文件"一种有效的 C + + 内存泄漏自检测方法.pdf"可能会详细介绍如何通过代码审查和工具辅助来检测和防止内存泄漏。 "内存调试"是识别和修复与内存相关的错误的过程。"内存调试技巧:C 语言最大难点揭秘.pdf"可能提供...

    GDI 内存泄露检测工具

    本文将深入探讨GDI内存泄露及其检测工具。 内存泄露是指程序在分配内存后未能正确释放,导致系统资源持续消耗。对于GDI资源,每创建一个GDI对象(如画刷、字体、位图等),系统都会分配相应的内存。当不再需要这些...

    LeakDiag内存泄露检测工具

    这些报告通常包含了内存泄漏的详细信息,包括泄漏的大小、分配内存的类型以及分配时的具体位置,即代码文件的某行。这使得开发者可以直接定位到问题所在,无需在大量代码中苦苦搜寻。 4. **修复与验证**:修复潜在...

    CString内存泄露HTML.rar

    - **调试技巧**:介绍了一些调试MFC程序内存泄露的实用方法,包括使用调试器和专门的内存检测工具。 - **具体案例**:通过具体的编程问题和代码示例,展示了可能导致内存泄露的常见错误。 对于开发人员来说,理解...

    glowcode内存泄露检查工具

    《GlowCode:高效能的内存泄露检测利器》 在软件开发过程中,内存管理是至关重要的环节,尤其是在C++等不自动管理内存的语言中。内存泄露是常见的编程错误,会导致程序运行效率下降,严重时甚至可能导致系统崩溃。...

    Drip 检测IE内存泄漏

    1. **内存泄漏定义**:内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,一次小的内存泄漏可能不明显,但随着时间推移,积累的内存泄漏会消耗大量系统资源,影响程序运行效率。 2. **IE浏览器中的内存泄漏*...

Global site tag (gtag.js) - Google Analytics