VirtualAlloc一次分配1PAGE以上的RAM. 每次分配都是PAGE的整數倍.
你不會想為了分配1個BYTE的空間而浪費剩下的4095字節. OK. 你可以自己寫算法,多分
配幾PAGE. 然后每次分配少量數據時就從那幾PAGE中劃分出來. 什么? 你笨到不會寫分
配算法? 好巴 KERNEL32給你一個解決辦法. 用HeapAlloc/GlobalAlloc分配RAM. 這樣,
KERNEL32幫你完成分配動作, 并且盡量在減少用于跟蹤空閑區域和已占用區域消耗的數
據結構.
很久以前也有個產品叫做WINDOWS. 那時候的WINDOWS是16BIT的. 地址空間有些緊俏.
有錢不夠. 還需要糧票肉票才能拿到. 你已經調用GlobalAlloc和已經出錢的性質一樣.
GlobalAlloc還不夠. 有時候需要GlocalLock才能確定你的東西確實可以拿到手.不然你
的指針會非法. 被充公. 你的應用會被殺頭. 扯遠了. 后來OS進化了. 覺得可以取消糧
票肉票. 但是你必須用新版鈔票才行. 那就是HeapAlloc. 只要市場上的RAM數量沒問題
. 你的HeapAlloc沒問題. 那就總能拿到東西. 但是, 你總不能說有了2000版的鈔票,
那80版的馬上作廢啊. 那GlobalAlloc也只好繼續流通下去. 至于可以流通到什么時候.
沒人知道.