簡體   English   中英

在有限遞歸中是否可能發生堆棧溢出錯誤?

[英]Is Stack OverFlow Error possible in finite recursion?

我有一個相當確定的遞歸方法。 但是,當我運行它時,我收到一個堆棧溢出錯誤。 還有另一種可能導致堆棧溢出的方法,或者該方法有什么問題嗎?

public static void solve(int row, int column){
    if (row<=8){
        if (column>8){
            solve(row+1, 0);
        }
        if (row<=8 && column<=8 && (Rows[row][column]==0)){
            for (int a = 1; a<=9;a++){
                if (check(row, column, a)==false&&Rows[row][column]!=a){
                    Rows[row][column]=a;
                    break;
                }
            }
        }
        solve(row, column+1);
    }
}

JVM中的堆棧大小是有限的,因此可以通過有限遞歸甚至沒有遞歸來獲取StackOverflow。

您可以使用-Xss選項增加JVM堆棧大小:

java -Xss16M YouMainClass

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM