gpt4 book ai didi

自定义 malloc 算法

转载 作者:行者123 更新时间:2023-11-30 17:46:24 25 4
gpt4 key购买 nike

我目前正在开发一个自定义 malloc 函数,该函数可以定期添加它或添加到最适合的 block 中。意思是最接近尺寸的 block 。我无法确定该程序的最合适部分。这是我的代码:

我还有:

static  * First = NULL;
static * Rover = NULL;

因此,在最佳拟合函数中,我有一个 do while 循环,它围绕循环链表运行一次。它应该找到最适合用户尝试分配的内存的 block 。除了它的段错误:

if(best->size > Rover->size)

我认为我的逻辑是有道理的,但我不明白为什么我会遇到段错误。

在函数的最开始,我声明最好为:

 *best = NULL;
best = Rover;

有什么想法吗?

最佳答案

我认为您需要初始化best以指向大小为零的虚拟 block 。确保您可以在第一次运行测试时测试 best 是否为 NULL。假设它为空,那么错误是由于在 best->size

中取消引用 NULL

或者您也可以在尺寸测试之前添加对 best == NULL 的测试。如果它是 NULL,则属于相同的 best = Rover... 代码。这更干净,但由于额外的测试会对性能产生轻微影响。

关于自定义 malloc 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19310491/

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