malloc分配的内存不一定是物理上连续的吗?

时间:2011-10-19 15:20:07

标签: c malloc virtual-address-space

malloc分配的内存可能占用多个页面,这些页面不一定是彼此相邻的,这是正确的吗?

3 个答案:

答案 0 :(得分:3)

这是正确的。

物理上连续的内存只对DMA很重要,你不在乎,因为你不在内核空间。

它在虚拟地址空间中是连续的。

答案 1 :(得分:3)

是的,实际上它们并不保证是相邻的,但至少在过程中它们看起来是虚拟地址空间。

在用户空间中,您很少需要考虑物理内存和连续页面。

答案 2 :(得分:1)

malloc将为您提供连续虚拟地址空间的内存。如果您知道虚拟内存的工作原理,您就会知道无法保证虚拟页面在物理上是连续的。