简单的内存管理,我们一般使用固定大小的块进行分配。如我使用64字节块进行分配,如果使用中要求分配的内存小64字节,我们就分配出一块,如果要求分配的内存大于64字节,则多块联合分配。因此我们就要引入一个内存管理块的概念。
typedef struct _MemCtrl
{
void * prevElementP;
void * nextElementP;
void * userSpaceP;
uint16_t userLen;
uint16_t useFlag;
}MemCtrl;
使内存控制块形成一个双向链表。其中userSpaceP指向可以给用户使用的内存。userLen保存本次分配出去的空间大小,它只能是64字节的整数倍。useFlag保存改内存块是否已经被分配出去。