-
HeapAlloc
鎖定
- 中文名
- HeapAlloc
- 類 型
- API函數
- 返回值
- void*
- 聲明位置
- Windows.h
HeapAlloc函數原型
LPVOID HeapAlloc(HANDLE hHeap,DWORD dwFlags,SIZE_T dwBytes,);
HeapAlloc參數
hHeap
要分配堆的句柄,可以通過HeapCreate()函數或GetProcessHeap()函數獲得。
dwFlags
堆分配時的可選參數,其值可以為以下的一種或多種:
值 | 意義 |
---|---|
HEAP_GENERATE_EXCEPTIONS | |
HEAP_NO_SERIALIZE | 不使用連續存取。 |
HEAP_ZERO_MEMORY | 將分配的內存全部清零。 |
dwBytes
要分配堆的字節數。
HeapAlloc返回值
如果分配內存失敗,並且沒有指定HEAP_GENERATE_EXCEPTIONS,則返回NULL。
如果指定了HEAP_GENERATE_EXCEPTIONS,則拋出異常,而不返回NULL:
異常代碼 | 描述 |
---|---|
STATUS_NO_MEMORY | 由於缺少可用內存或者是堆損壞導致分配失敗。 |
STATUS_ACCESS_VIOLATION | 由於堆損壞或者是不正確的函數參數導致分配失敗。. |
HeapAlloc例子
plfTable = (PIP_INTERFACE_INFO)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(PIP_INTERFACE_INFO));
// ... (your operations)
HeapFree(GetProcessHeap(), 0, plfTable); // 使用完畢後釋放堆
注:PIP_INTERFACE_INFO結構包含了與IPv4網絡接口適配器,在本地系統上啓用的列表
HeapAlloc需求
客户端 | 至少Windows 95。 |
---|---|
服務器 | 至少Windows NT Server。 |
頭文件 | 在Winbase.h中聲明,包含於Windows.h。 |
庫文件 | Kernel32.lib。 |
DLL | 需要Kernel32.dll。 |
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:20次歷史版本
- 最近更新: a2026232403