malloc完成的内存分配是否总是连续的?
我在 K&R 书中读到“malloc 管理的空间可能不是连续的。每个块都包含大小,一个指向下一个块的指针。”。但是当我做 google 时,我看到大多数人都说 malloc 总是进行连续的内存分配。所以请清除这个疑问。事实是什么?malloc 管理的空间始终是连续的,也可能是连续的,也可能不连续。
回答
存储器的单个块返回的malloc,calloc或realloc将始终是连续的。
由单独的 alloc 调用返回的下一个内存块可以位于任何地址,并且不需要与第一个块相邻。