函数HeapAlloc声明如下:
WINBASEAPI
__bcount(dwBytes)
LPVOID
WINAPI
HeapAlloc(
__in HANDLE hHeap,
__in DWORD dwFlags,
__in SIZE_T dwBytes
);
hHeap是进程堆内存开始位置。
dwFlags是分配堆内存的标志。
dwBytes是分配堆内存的大小。
调用函数的例子如下:
//分配堆内存。
void MemHeap(void)
{
//
const int nHeapSize = 1024;
PBYTE pNewHeap = (PBYTE) HeapAlloc(GetProcessHeap(), 0, nHeapSize);
if(pNewHeap)
{
//测试分配堆内存。
ZeroMemory(pNewHeap,nHeapSize);
memcpy(pNewHeap,_T("分配堆内存成功\r\n"),
sizeof(_T("分配堆内存成功\r\n")));
OutputDebugString((LPWSTR)pNewHeap);
//释放内存
BOOL bRes = ::HeapFree(GetProcessHeap(), 0, pNewHeap);
if (bRes != TRUE)
{
OutputDebugString(_T("释放内存出错\r\n"));
}
}
}