首先,以定义数组的方式获得了这块堆空间,这是一块连续的空间。
请求空间总是从的尾部开始寻找空闲空间。
请求空间时,从Allocp指向的内存块中拿取空间。
空间用完时,Allocp指向堆的基地址。
被分配的空间中所需求的字节用0xcc填充(分配以8字节为单位,请求2字节,也会分配8字节,只对请求的那2字节填充0xcc)。
释放出空间后,Allocp指向空闲空间的首地址。
被释放的空间用Debugpat的初值填充(以8字节为单位填充,不会顾虑实际分配的字节数)。
-----------------------------------
Base指向堆的首地址,一直指向首地址,没变过。
Base所指向的内容,是首个空闲空间的地址值。
空间用完了就指向自己。
-----------------------------------
First指向第一个有效的分配块,一直指向那里,没变过。
这个……我实在不懂“第一个有效的分配块”是个什么意思。