1,unsigned char * buff = new unsigned char [500*1024*1024];
2,unsigned char * buff = (unsigned char *)malloc(500*1024*1024);
3,
SYSTEM_INFO si;
::GetSystemInfo(&si);
size_t nPageSize = si.dwPageSize;
size_t nBytes = 500*1024*1024;
size_t nPages = (nBytes % nPageSize) == 0 ? nBytes / nPageSize : (nBytes / nPageSize) + 1;
size_t nBytesNew = nPages * nPageSize; // 注意没有做溢出处理。
unsigned char * buff = (unsigned char *)::VirtualAlloc(NULL, nBytesNew, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);