用C编一个内存托管函数库...

来源:百度知道 编辑:UC知道 时间:2024/06/14 20:07:33
如题,托管内存而不用每次malloc后free,同时不能内存泄漏...

使用方法:
__________________________________________
#include "mempool.h"
#include <stdio.h>
int main() {
MemPool* pool = open_pool();//这个链表储存了所有指针信息。
char* str =NEW_STR(pool, 1024);//申请内存空间,并在pool中记录。
scanf("%s", str);printf("%s\n",str);
close_pool(pool);//释放所有申请的空间
return 0;}
__________________________________________
#include <stdlib.h>
struct _MEM_TABLE_ {
void * pointer;
struct _MEM_TABLE_* next;
};
typedef struct _MEM_TABLE_ MemPool;
typedef void (*FUNC_POOL_EACH)(MemPool*);
MemPool* open_pool(void);
void close_pool(MemPool*);
MemPool* __pool_bottom(const MemPool*);
void __pool_for_each(MemPool*, FUNC_POOL_EACH);
void __pool_alloc_memset(void*,size_t);
void* alloc_pool(MemPool*, size_t);
void delloc_pool(MemPool*, void*);
#define NEW_STR(pPool,len) ((char*)alloc_pool((pPool),(len)))
#define NEW_INT(pP