/* 以下为定义的结构体 */
/*
* 利用通用链表将block进行管理,其中一条链表管理所有的节点,另一条管理空闲节点。
*/
#include<stdio.h>
#include<stdlib.h>
#define offsetof(block,member)/
(uint_32)&(((block *)0)->member) /* 偏移量*/
typedef unsigned long uint_32;
typedef struct block block;
typedef struct node node;
struct node /* 管理整个数据的结构体*/
{
node *pre;
node *next;
};
struct block
{
int flag; /* 1: used;0:free */
uint_32 adm_size; /* manage space */
node all; /*用于管理未使用地址*/
node free; /* 用于管理已使用地址*/
};
block malloc_header; /* the header of link;*/
void *memery = NULL;
uint_32 save_size;