- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我试图在启动时通过 VirtualAlloc 分配一大块内存(大约 1GB-2GB),然后我可以稍后将其分割以供整个应用程序的其余部分使用。在 Debug模式下,我想在 VirtualAlloc 调用中传递一个基地址以保持指针地址一致以便于调试,但我很难理解我可以使用的有效基地址是什么。
这是发生分配的代码片段
s32 CALLBACK WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR cmdLine, s32 showCode)
{
SYSTEM_INFO info = {};
GetSystemInfo(&info);
// In my case info.lpMinimumApplicationAddress gives me 64kb
LPVOID base = info.lpMinimumApplicationAddress;
u32 totalSize = MEGABYTES(8);
void *test = VirtualAlloc(base, totalSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
...
}
最佳答案
链接的文章适用于 32 位模式。在 64 位模式下,保留地址从 128 TB 开始。这是MSDN says关于它:
For a 32-bit process, the virtual address space is usually the 2-gigabyte range 0x00000000 through 0x7FFFFFFF. For a 64-bit process on 64-bit Windows, virtual address space is the 128-terabyte range 0x000'00000000 through 0x7FFF'FFFFFFFF. A range of virtual addresses is sometimes called a range of virtual memory. For more info, see Memory and Address Space Limits.
NULL
作为基地址和
VirtualAlloc
将为您选择一个:
lpAddress
The starting address of the region to allocate. If the memory is being reserved, the specified address is rounded down to the nearest multiple of the allocation granularity. . . . If this parameter is
NULL
, the system determines where to allocate the region.
关于c++ - 了解 VirtualAlloc 中的基地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62174578/
目前我有几个配置了以下目录的catalina bases, conf logs server webapps work bin、lib 和common 目录都还在$CATALINA_HOME 中。 我
我是一名优秀的程序员,十分优秀!