如何管理一段内存的分配和释放---2

===========================================================================

下面的这种管理内容的方式,是将一段空间(总共60Byte)划分成2中类型,1和2每段大小相同假设为20Byte;3和4每段相同假设为10Byte;

如何管理一段内存的分配和释放---2

管理者有个链表,该链表指向1的起始地址;1~4很相似,以2为例。

A---》要能够指向下一个地址空间;

B---》表示该段内存的类型,例如是20Byte的类型还是10Byte的类型;


于是一开始链表的指向就很明确。

管理链表---》1(20Byte)---》2(20Byte)---》3(10Byte)---》4(10Byte);

如果3被分配了,就变成   管理链表---》1(20Byte)---》2(20Byte)---》4(10Byte);

如果3又被释放了,就变成   管理链表---》3(10Byte)---》1(20Byte)---》2(20Byte)---》4(10Byte)---》4(10Byte);


所以这种管理方式就要求使用者在分配的时候要告诉分配哪种类型,在释放的时候是释放的哪种类型;


===========================================================================