0

申し訳ありませんが、コースコードをすべて削除する必要がありました。

4

1 に答える 1

1

board関数で境界チェックを行っていないため、それが単なる標準配列または境界チェックを行わないクラスであると仮定するx<=1と、境界を超えて未定義の動作に陥ります。

これ以上のコードを表示しない限り、最も明白なチェックと修正は次のようになります。

else if( x > 1 && (board[x-1][y] == 'S' && board[x-2][y] == '.') )

ifまた、ステートメントに境界チェックの問題があります。その場合x >= 4、境界の外にも出ます。

if( x <= 4 && (board[x+1][y] == 'S' && board[x+2][y] == '.') ) 

max を定義するある種の変数があると、変更することにした場合に役立ちます。

于 2013-04-12T02:54:01.047 に答える