【发布时间】:2012-04-22 05:33:51
【问题描述】:
我写了下面的代码
但是 VirtualAlloc 失败并且 ptr1,ptr2 的值始终为 NULL。 我想使用地址 0x70000000,0x80000000。 有谁知道我如何使用这些地址?
【问题讨论】:
标签: c++ c winapi virtualalloc
我写了下面的代码
但是 VirtualAlloc 失败并且 ptr1,ptr2 的值始终为 NULL。 我想使用地址 0x70000000,0x80000000。 有谁知道我如何使用这些地址?
【问题讨论】:
标签: c++ c winapi virtualalloc
用户模式应用程序无法访问这部分内存。来自以下MSDN page:
用户应用程序无法使用共享堆地址调用 VirtualAlloc 范围(0x70000000 到 0x7fffffff),因为这是用户只读的 应用程序和内核模式的读/写。
【讨论】:
您确定请求的内存块中的某些页面尚未保留(或提交)吗? VirtualAlloc 无法保留保留页。
为什么 0x70000000 和 0x80000000 很特别?在平面内存模型中,没有理由说一个地址比其他地址更可取。
【讨论】: