//内存泄漏之malloc替换方法
//内存泄漏之malloc替换方法
#include "stdio.h"
#include "stdlib.h"
/*文件路径名长度,可以根据需要修改*/
#define patch_len 50
struct record
{
char name[patch_len+1];
unsigned int line;
unsigned int addr;
struct record *next;
};
#define Malloc(size) malloc_ext(size,__FUNCTION__, __LINE__)
#define Free(p) free_ext(p,__FUNCTION__, __LINE__)
void * malloc_ext(size_t size,const char *name, unsigned int line);
void free_ext(void * p,const char *name, unsigned int line);
struct record * add_record(struct record *head, unsigned int addr, unsigned int line, const char *name);
int delete_record(struct record *head, unsigned int addr);
void show_record(void);
/*定义未释放内存链表头节点*/
struct record * record_list = NULL;
struct record * add_record(struct record *head, unsigned int addr, unsigned int line, const char *name)
{
struct record *m = NULL;
struct record *n = NULL;
if(head == NULL)
{
head = (struct record*)malloc(sizeof(struct record));
head->addr = addr;
head->line = line;
memcpy(head->name, name, patch_len);
head->name[patch_len] = '