我对 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);
第二种选择有什么好处?
我可以使用下面的函数来获取缓冲区:
void* pdata = VirtualAlloc(NULL, 64*1024*1024, MEM_COMMIT, PAGE_READWRITE);
if (pdata == NULL)
{
cout<<"Last error is "<<GetLastError()<<endl;
}
没有错误