gpt4 book ai didi

c++ - 为什么 dlmalloc 分配的 block 头包含 4 个字节的先前分配的 block

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:41:36 25 4
gpt4 key购买 nike

<分区>

我正在研究称为 doug lea 内存分配器的动态内存分配器,它使用最适合的方法在堆上分配内存。该算法是更多其他算法的基础,但我发现在分配 block 的情况下,该 block 的 header 包含前一个 block 的最后 4 个字节的数据。我查看了算法解释,但找不到原因。我想知道分配前一个 block 的 4 个字节的目的是什么? 我还想出了一个解释,即在其他 block 中分配 .dtors 部分以实现同步和正确使用空间,但我想知道详细信息。

this is the figure of chunks of dlmalloc algorithm

上图包含了allocated chunk和free chunk的结构。在空闲 block 中,前 4 个字节包含前一个 block 的大小,但在分配 block 中,前四个字节包含前一个分配 block 的用户数据的最后四个字节,这让我有点困惑我想知道在当前 block 中仅分配先前分配 block 的四个字节的目的是什么。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com