结构体、指针、链表、动态分配内存用于检测内存泄漏问题
发布时间
阅读量:
阅读量
目的 :旨在帮助开发人员识别内存泄漏的相关问题。
注意事项 :本方法无法直接处理开发人员所遇到的内存泄漏问题。
实现过程 :通过将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)
还没有任何评论哟~
