有没有办法分配一 block 内存,使其起始地址与给定的页面大小对齐?请注意,我不想在分配 block 后计算对齐地址。原因是在某些时候我将不得不在 block 上调用 mremap():mremap 要求旧地址参数是页面对齐的。
最佳答案
mremap
只能安全地用于由 mmap
分配的内存区域,这些内存区域本质上是页面对齐的。在其他任何事情上使用它都是危险的(正式的,未定义的行为)并且可能看起来有效但可能会以您不会立即看到的方式严重破坏事物。
关于c++ - 如何从 operator new 或 malloc 为 mremap 获取页对齐内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884122/