设为首页 加入收藏

TOP

C基础 内存越界和内存监测的简单处理(三)
2017-10-12 17:41:11 】 浏览:1797
Tags:基础 内存 越界 监测 简单 处理
#undef realloc #undef free

 这个主要为了解决 引用了 头文件 memglobal.h 会造成递归调用. Linux上还有一种思路, 不包含这个头文件

链接时候gcc 指定就可以.  但是 vs 是自动推导编译, 如果不引入它推导不出来. 后面就采用了上面通用的做法.

上面思路是, 先启动 全局内存监测功能, 再通过特殊宏,替代原先的申请和释放函数. 来达到目的.

测试文件 main.c

#include <stdio.h>
#include <stdlib.h>
#include "memglobal.h"

/*
 * 内存全局计数, 检测内存是否越界
 */
int main(int argc, char* argv[]) {
    
    // 开启内存全局计数
    mg_start();

    int *p = malloc(16);

    p = calloc(12, 2);
    *p = 154;

    puts("就这样!");

    p = realloc(NULL, 6);
    puts("测试这样行!");
    
    return 0;
}

 测试运行结果如下

最终打印日志是

好. 到这里 关于内存全局检测的技巧解释和实现完毕. 很简单很好用.

重点是理解上面两种方式思路.  哈哈, 是不是发现  好神奇的内存泄露, 内存越界, 内存泄露监测也不过如此.

开发, 写代码很简单, 但化为生产力就很难了, 也许需要更多有能力的一起转换.

 

后记

  错误是难免, 欢迎吐槽交流, 拜~~. 希望早睡早起.

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用C语言将pcm数据封装成wav文件.. 下一篇338. Counting Bits

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目