#include <Windows.h>
#include <iostream>
using namespace std;
int main(void)
{
unsigned char* pFoo = new unsigned char[1000];
pFoo = (unsigned char*)VirtualAlloc(NULL, 1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
VirtualFree(pFoo, 0, MEM_RELEASE);
delete[] pFoo;
cin.ignore();
cin.get();
return 0;
}
這崩潰,我在新建/刪除[]和的VirtualAlloc
delete[] pFoo;
我知道這是因爲的VirtualAlloc的崩潰,但我不知道如何解決這個問題?
所以它只是VirtualFree(pFoo,0,MEM_RELEASE);足夠? – replicant
那麼,主要問題是你有兩個不同的分配去同一個變量。第二次分配將覆蓋第一個指針。然後你嘗試釋放/釋放它兩次。 – Mysticial
可以解釋你想用兩個分配來完成什麼?或者你是在誤解某些東西? – Mysticial