1
當進程的虛擬內存中堆棧和堆之間的未使用內存空間耗盡時會發生什麼?進程虛擬內存 - 堆棧和堆之間的空間
當進程的虛擬內存中堆棧和堆之間的未使用內存空間耗盡時會發生什麼?進程虛擬內存 - 堆棧和堆之間的空間
在Windows中,堆棧和堆之間有一個防護頁,所以堆和堆棧從不觸碰。這是出於安全原因(因此堆棧耗盡錯誤不會導致更易被利用的堆溢出錯誤)。
如果你問堆滿時會發生什麼,簡單的答案是你的malloc(或HeapAlloc或其他)調用將開始返回NULL。如果您問堆棧滿時會發生什麼,那麼您會遇到堆棧耗盡異常(有時錯誤地稱爲堆棧溢出)。在任何情況下,這通常會導致程序釋放一些內存並繼續或退出到桌面。