【发布时间】:2010-08-09 20:33:48
【问题描述】:
VirtualAlloc 返回的内存块是否总是与页面大小对齐?换句话说,VirtualAlloc 的返回值和页面大小的模数总是为零吗?
【问题讨论】:
标签: memory-management winapi alignment memory-alignment
VirtualAlloc 返回的内存块是否总是与页面大小对齐?换句话说,VirtualAlloc 的返回值和页面大小的模数总是为零吗?
【问题讨论】:
标签: memory-management winapi alignment memory-alignment
嗯,是的。
毕竟,你调用 VirtualAlloc 来分配一些内存页面。您不能只分配 1 个字节而不接收整个页面,因此您将收到与页面大小对齐的缓冲区是有道理的。
【讨论】:
来自 VirtualAlloc 的 MSDN 文档:
如果内存已经被保留并且 正在提交,地址是 向下舍入到下一页 边界。
所以答案是肯定的,如果你提交内存而不是保留它。
【讨论】: