if((Board[p.x+xd[forword]][p.y+yd[forword]] == 0 && p.x+xd[forword]<M && p.y+yd[forword]<M) && (p.x+xd[forword]>=0 && p.y+yd[forword]>=0))为什么会报出数组越界的错误
时间: 2023-12-04 17:05:55 浏览: 64
数组越界异常
这段代码中的 `Board` 数组可能越界,可能是 `p.x+xd[forword]` 或 `p.y+yd[forword]` 的值超出了 `Board` 数组的范围。为了避免这种情况,可以在使用 `Board` 数组的时候先判断其下标是否越界,例如:
```
if (p.x+xd[forword] >= 0 && p.x+xd[forword] < M && p.y+yd[forword] >= 0 && p.y+yd[forword] < M && Board[p.x+xd[forword]][p.y+yd[forword]] == 0) {
// do something
}
```
这样可以避免数组越界的错误。
阅读全文