如果语句导致程序崩溃与递归

时间:2013-04-12 02:46:57

标签: c++ if-statement recursion artificial-intelligence

我不得不删除所有课程代码,抱歉。

1 个答案:

答案 0 :(得分: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的变量会很有帮助。