2012-03-05 84 views

回答

1

在Windows中,堆棧和堆之間有一個防護頁,所以堆和堆棧從不觸碰。這是出於安全原因(因此堆棧耗盡錯誤不會導致更易被利用的堆溢出錯誤)。

如果你問堆滿時會發生什麼,簡單的答案是你的malloc(或HeapAlloc或其他)調用將開始返回NULL。如果您問堆棧滿時會發生什麼,那麼您會遇到堆棧耗盡異常(有時錯誤地稱爲堆棧溢出)。在任何情況下,這通常會導致程序釋放一些內存並繼續或退出到桌面。