gpt4 book ai didi

c - Doug Lea 的 malloc 中的状态标记是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 13:21:52 25 4
gpt4 key购买 nike

背景

GNU C 库使用的 malloc 本质上是 Doug Lea's malloc implementation (也称为dlalloc),扩展了多线程支持。

问题

这是描述“ block ”在 dlalloc 中如何工作的图像:

enter image description here

正如您所看到的,有两个东西似乎存储在每个 block 开头的同一空间中:大小状态

这是如何工作的?它们是否彼此相邻地存储在连续的内存中,或者它们是否以某种方式存储在同一位置并通过位掩码进行访问?

最佳答案

size 是字节数,是某个对齐值(8 或 16)的倍数。低位用于标志,统称为状态。各种函数屏蔽状态位以获取大小信息。在一些特殊情况下。已知状态位全为0,因此省略屏蔽操作。

关于c - Doug Lea 的 malloc 中的状态标记是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35678886/

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