C++内存管理14-main之前你所不知道的事06-结束

内存管理-main之前你所不知道的事06-结束

在这里插入图片描述
在这里每一个header链表包含64对指针,每一对管理的大小也不同,这个模式和之前内存池的设计类似,第一个管理8个字节,第二个管理16个字节。在这里有64对指针,每一组管理16个字节的大小,第二队就管理32字节的大小,第64队就管理1024字节的大小。在这里管理的意思是将空闲的内存交给对应的组来管理。大于1024字节就交给最后一组指针管理。
在之前的讲解中,提到了分配256个字节,4080-256>1024故不改变指针的指向,继续交给最后一组指针管理。(最后一组指针比较特殊,专门管理大于等于1024字节的)
接下来看看是如何切割的:
在这里插入图片描述
经过前面的几节的讲解,经过调整分配内存的大小16进制是130H(其实我们需要100H大小(256字节))。那么4080去掉刚才的大小之后还剩eco,如图所示,在这里就将左边剪刀下面红色地址扔出去。其实右边的图如果你看过之前文章就明白了,然后经过一些列的移动,就将浅绿色的部分给了用户也就是256个字节。

发布了65 篇原创文章 · 获赞 6 · 访问量 1529

猜你喜欢

转载自blog.csdn.net/FairLikeSnow/article/details/104235856