主要是解决自己分配的内存忘记释放的问题,自己定义了几个函数取代了malloc,calloc,realloc,free这几个函数,尽量跟原有用法一致。
头文件mypool.h
#ifndef _MYPOOL_H
#define _MYPOOL_H
struct Node
{
struct Node *preNode;//前一个节点
struct Node *nextNode;//后一个节点
void **varAddr;//存储指针变量的地址
int size;
char freed;
};
struct Chain
{
struct Node *first;
struct Node *last;
int size;
};
void InitChain();
struct Node* InitNode(struct Node *pn);
int Push(struct Node *pn);
int RemoveChain(void **id);
int FreeChain();
void* MyMalloc(void **p,int size);
void* MyCalloc(void **p,int nsize,int usize);
void* MyRealloc(void **p,int size);
void MyFree(void **p);
#endif
实现代码:mypool.c
/************************************************************************/
/*这些代码主要是实现对自己分

这篇博客介绍了一个使用C语言编写的内存管理代码,包括自定义的malloc、calloc、realloc和free函数,通过维护一个链表来跟踪分配的内存,以避免忘记释放的问题。作者提供了头文件mypool.h和实现文件mypool.c,代码简洁且易于理解。
最低0.47元/天 解锁文章
135





