小编use*_*997的帖子

VirtualAlloc MEM_COMMIT和MEM_RESERVE

我对VirtualAlloc感到困惑,

我们可以保留内存使用MEM_RESERVE,然后使用MEM_COMMIT提交它,但是我在下面两个函数之间使用时有点混淆:

m_pvData = VirtualAlloc(NULL, m_nBuffSize, MEM_COMMIT, PAGE_READWRITE);
m_pvData = VirtualAlloc(NULL, m_nBuffSize, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
Run Code Online (Sandbox Code Playgroud)

第二种选择有什么好处?

我可以使用下面的函数来获取缓冲区:

void* pdata = VirtualAlloc(NULL, 64*1024*1024, MEM_COMMIT, PAGE_READWRITE);
if (pdata == NULL)
{
    cout<<"Last error is "<<GetLastError()<<endl;
}
Run Code Online (Sandbox Code Playgroud)

没有错误

memory virtualalloc

5
推荐指数
1
解决办法
3134
查看次数

标签 统计

memory ×1

virtualalloc ×1