我目前正在研究一个自定义 malloc 函数,该函数要么定期添加它,要么添加到最适合的块中。意思是最接近大小的块。我在程序中最合适的部分遇到了麻烦。这是我拥有的代码:
我也有:
static * First = NULL;
static * Rover = NULL;
因此,在最适合的函数中,我有一个 do while 循环,它围绕循环链表进行一次。它应该找到最适合用户尝试 malloc 的内存的块。除了它在以下位置出现故障:
if(best->size > Rover->size)
我认为我的逻辑是有道理的,但我不明白为什么我会遇到段错误。
在函数的最开始,我最好声明为:
*best = NULL;
best = Rover;
有什么想法吗?