Advertisement

结构体、指针、链表、动态分配内存用于检测内存泄漏问题

阅读量:

目的 :旨在帮助开发人员识别内存泄漏的相关问题。
注意事项 :本方法无法直接处理开发人员所遇到的内存泄漏问题。
实现过程 :通过将malloc和free进行封装,并构建链表结构来实现功能。每当调用SV_MALLOC时,会在链表中新增一个节点,并为该节点分配内存空间。节点中存储的信息包括:在分配内存时所处的函数名function、代码行号line、分配的字节数size以及对应的内存地址ptr。当调用SV_FREE时,系统会查找链表中与之前malloc操作相关的指针变量,将对应节点从链表中移除,并释放该节点所占用的内存资源。
涉及知识 :结构体的应用、指针操作、链表结构、动态内存分配以及对封装函数进行宏定义的小技巧。

先放上代码,抽空再讲吧

复制代码
    #ifndef _TEST_MEM_H_
    #define _TEST_MEM_H_
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <malloc.h>
    
    /* 用于输出链表的函数 */
    void display();
    
    void *sv_malloc(size_t size, char *function, 

全部评论 (0)

还没有任何评论哟~