VirtualAlloc返回的内存块是否总是与页面大小对齐?换句话说,模数将始终为VirtualAlloc的返回值和页面大小的零?VirtualAlloc对齐
2
A
回答
2
好的,是的。
毕竟,你调用VirtualAlloc来分配一些内存页面。如果不接收整个页面,则不能分配1个字节,因此,您将收到与页面大小对齐的缓冲区。
1
从MSDN文档的VirtualAlloc:
如果内存已保留并 正在犯,地址是 四舍五入到下一个页面 边界。
所以答案是肯定的,如果你提交的是内存而不仅仅是保留它。
相关问题
- 1. 检查VirtualAlloc是否被VirtualAlloc返回
- 2. 的VirtualAlloc地址
- 3. virtualalloc问题
- 4. 的VirtualAlloc MEM_COMMIT和MEM_RESERVE
- 5. 新建/删除[]和的VirtualAlloc
- 6. 何时使用VirtualAlloc Vs新?
- 7. 对齐<View/>对齐
- 8. LaTex,在对齐块之间对齐对齐字符
- 9. Bootstrap导航栏对齐想要对齐
- 10. 右对齐和左对齐UITextView。
- 11. 对齐图片 - 水平对齐
- 12. div对齐内部td的对齐
- 13. CSS文本对齐对齐大空格
- 14. 右对齐按钮垂直未对齐
- 15. Windows Mobile上的连续VirtualAlloc行为
- 16. VirtualAlloc的顺序似乎很重要(C++)
- 17. 跨平台内存分配器sbrk/virtualalloc
- 18. 如何(暂时)从VirtualAlloc释放内存?
- 19. CreateThread是否会影响VirtualAlloc的使用?
- 20. maskedtextbox对齐
- 21. log4j对齐
- 22. 结构对齐
- 23. 对齐问题
- 24. 对齐问题
- 25. 列未对齐
- 26. 对齐问题
- 27. 水平对齐
- 28. 对齐问题
- 29. HTML:div不对齐?
- 30. div的对齐
所以你说下面的调用将总是返回一个向下舍入到下一页边界的地址。请注意,lpAddress参数为NULL,因此无法保留。 VirtualAlloc(NULL,1024,MEM_COMMIT,PAGE_READWRITE) – Mike 2010-02-09 21:51:49
是的,这就是我要说的。但我认为你误解了“保留”的含义。该文档讨论了MEM_RESERVE标志,它与lpAddress参数无关。 – flodin 2010-02-13 07:34:21
我相信我确实知道“保留”是什么意思。我的示例函数调用没有在“保留”页面上运行。我从不使用“保留”页面。文档从未提及如果页面没有首先被保留就被提交。我使用NULL仅仅是说我从不保留这块内存的快速方法。 – Mike 2010-02-15 15:57:33