作爲C++編程和計算機系統體系結構的初學者,我仍然在學習C++的基礎知識。昨天,我讀到遞歸函數,所以我決定寫我自己,這是我寫的:(很基本的)由遞歸函數引起的堆棧溢出
int returnZero(int anyNumber) {
if(anyNumber == 0)
return 0;
else {
anyNumber--;
return returnZero(anyNumber);
}
}
當我這樣做:INT ZERO1 = returnZero(4793);它會導致堆棧溢出,但是,如果將值4792作爲參數傳遞,則不會發生溢出。
任何想法爲什麼?
也許更大的價值究竟是什麼需要使棧溢出? – Listing
嘗試5000 - 它很可能會溢出堆棧。你的系統有多少內存? – Silas
你問你爲什麼堆棧有特定的大小? –