看板 b96902HW 關於我們 聯絡資訊
※ 引述《chhsiao (bye~)》之銘言: : ※ 引述《JingXD (@O@)》之銘言: : : 請問.... : : SUBMIT裡面: : : 什麼叫做 "使用到不該用的記憶體" ..... : : 囧~~~~ : 每次 call function 的時候你的參數和宣告的變數等 : 都會跟系統的要一份記憶體空間來儲存. : 這份記憶體空間稱作 stack. (就是老師上課講的 stack) : 如果你遞迴太深了, 把 stack 撐爆的話, : stack 可能會滿出原來可以用的位置, 而用到不該用的地方。 : 如果你的終止條件寫得對, 就可以避免這種情況發生。 對了, 有一個同學也有出現 "使用到不該用的記憶體" 的錯誤。 不過他不是因為遞迴跑太深,而是...... 他用 scanf 讀了 8 個 10 進位整數,卻只用 7 個變數去接 囧 -- n;main(i){return n?i<2?i:main(i-1)+main(i-2): scanf("%d",&n)&&printf("%d\n",n>0?main(n):0);} -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.54
JingXD:@O@ 10/19 19:13