【发布时间】:2017-04-11 19:56:24
【问题描述】:
我目前正在尝试编写自己的 malloc 和 free 实现。
在我的研究过程中,我发现了一些要求免费memoryspace 的实现:
block = sbrk(totalSize);
还有一些其他的代码
最后他们return:
return (block + 1);
但我不明白为什么+ 1 是必要的。
另一件事我不明白为什么某些实现在他们的struct 中有一个magic number。
我已经搜索了网络和 stackoverflow,但没有找到任何问题的答案。
【问题讨论】:
-
为什么他们有一个幻数?没有看到实际的源代码很难说。 为什么会有
+1?没有看到实际的源代码也很难分辨。 -
另外,你听说过
mmap吗? -
是的,我听说过
mmap。为什么? -
'因为使用
mmap()支持malloc()存储更加灵活...