1. 程式人生 > >遞迴呼叫中棧溢位原因

遞迴呼叫中棧溢位原因

那麼過多的遞迴呼叫為什麼會引起棧溢位呢?事實上,函式呼叫的引數是通過棧空間來傳遞的,在呼叫過程中會佔用執行緒的棧資源。而遞迴呼叫,只有走到最後的結束點後函式才能依次退出,而未到達最後的結束點之前,佔用的棧空間一直沒有釋放,如果遞迴呼叫次數過多,就可能導致佔用的棧資源超過執行緒的最大值,從而導致棧溢位,導致程式的異常退出。