根据这篇文章,CRT使用单独的堆(它是私有堆吗?),但是这个小例子表明CRT堆和默认堆是相同的:
HANDLE heaps[64];
DWORD heapCount = GetProcessHeaps(64, heaps);
for (int i = 0; i<heapCount; i++)
printf("heap %d : [0x%x]\n", i, heaps[i]);
printf("crt heap[0x%x], default heap[0x%x]\n", _get_heap_handle(), GetProcessHeap());
Run Code Online (Sandbox Code Playgroud)
在什么情况下GetProcessHeap和_get_heap_handle返回不同的句柄?
//使用VS2012编译(平台工具集v110)