【问题标题】:How does the operating system determine which region to allocate when lpAddress is null in VirtualAllocVirtualAlloc中lpAddress为空时操作系统如何确定分配哪个区域
【发布时间】:2013-05-21 07:17:25
【问题描述】:

VirtualAlloc函数调用的lpAddress参数为空时,操作系统如何确定分配哪个虚拟地址空间区域?

【问题讨论】:

  • 我将这个问题解释为“malloc 是如何工作的”是否正确?
  • 你能告诉我们更多关于为什么你问这个问题的原因吗?为什么你认为你需要知道这些信息?为什么它与您的应用程序设计或您对函数的调用有关?如果您关心该地区,您应该为lpAddress 传递一些东西。如果你通过NULL,那么你就不用关心了。
  • @Patashu 不,您会将操作系统的低级虚拟内存系统与 C 标准库中的细粒度通用分配器混淆。
  • 短版:操作系统在虚拟地址空间的任何合适的当前未使用区域中分配新块。

标签: windows memory-management virtualalloc


【解决方案1】:

VirtualAlloc 函数为 lpAddress 参数赋予 NULL 时,该函数将在另一个 VirtualPage 前面分配,并且分配大小将四舍五入到该页面边界。

资源:

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-07-18
    • 2014-03-29
    • 2011-08-30
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多