HeapFree 函数 - 空参数?

HeapFree function - Null parameter?

Windows HeapFree 函数具有以下签名:

BOOL WINAPI HeapFree(
  _In_ HANDLE hHeap,
  _In_ DWORD  dwFlags,
  _In_ LPVOID lpMem
);

文档中没有提及如果 hHeap 为 null 会发生什么。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa366701(v=vs.85).aspx

HeapFree 的文档说:

hHeap [in] A handle to the heap whose memory block is to be freed. This handle is returned by either the HeapCreate or GetProcessHeap function.

您必须传递有效的堆句柄。 NULL 不是有效的堆句柄(HeapCreateGetProcessHeap 都通过返回 NULL 表示失败)。如果您没有传递有效的堆句柄,则行为未定义。