好吧,衆所周知GlobalAlloc/GlobalFree/HeapAlloc/HeapFree API正在管理默認堆或用戶定義堆(CreateHeap),每個堆有一些段,每個段都有多個塊。它被稱爲The Freelist而後備列表正在管理每個堆中的空閒塊。VirtualAlloc/VirtualFree vs Heap函數
在扭轉一塊軟件,我發現使用VirtualAlloc分配一大塊內存。基本上我不能說它是一個堆,因爲這個塊是直接從虛擬地址空間分配的,並沒有顯示任何堆的跡象。 但是應用程序中的一些例程將設置自定義Freelist,該應用程序本身由應用程序管理,並用於定義和控制使用VirtualAlloc分配的大塊的空閒部分。
作爲應用程序設置了一個Freelist結構來管理它,我可以稱這個塊爲HEAP嗎?
如果你願意,你可以稱它爲香蕉。你真的想知道什麼? –
我實際上正在破壞該塊並覆蓋應用程序設置的flink/blink指針,我想寫一篇關於它的文章,並且我很害怕將這個分配的塊稱爲堆而被誤認爲是!因爲它不是,它只是應用程序編輯的VAS中的一大塊內存,所以它只能獲得堆的小特性! – JohnnyCat
所以你回答了你自己的問題,這不是一堆。 – Damon