Windows有VirtualAlloc,它允许您保留一个连续的地址空间区域,但实际上不使用任何物理内存.稍后,当您想要使用它(或其中的一部分)时,可以再次调用VirtualAlloc来提交之前保留页面的区域.
这实际上非常有用,但我希望最终将我的应用程序移植到linux——因此,如果以后无法移植,我不想使用它.linux有办法做到这一点吗?
EDIT - Use Case
我正在考虑分配4GB或类似的虚拟地址空间,但一次只分配64K.这将为我提供一种零拷贝的方式,将数组扩展到4GB.这一点很重要,因为对于非常大的数组来说,典型的数组大小和拷贝数加倍会带来看似随机的、不可接受的延迟.