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 回答