子数组核心转储问题
Sub array core dump issue
int proximity = 0;
for(int i = coord.x - 1; i <= coord.x + 1; i++)
{
if(i < 0)
{
i = coord.x; //prevents from leaving the top of sub array
}
for(int j = coord.y - 1; j <= coord.y + 1; j++)
{
if(j < 0)
{
j = coord.y;
}
if((board[i][j] == bomb) || (board[i][j]==hidden))
proximity++;
} //nested for loop runs through a sub array based on user input between 0-4
}
我正在尝试在子数组中检查坐标,我尝试了许多不同的变体,但是我无法在第4行中输入坐标,而不会得到核心转储错误。我知道这可能是我需要打字的一条简单的小线来解决此问题,但我很困惑。
在您的代码中您执行了下边界检查,但是丢失了上限检查。您需要确保X或Y坐标都不会超过板边界。
假设您的x_size ans y_size是各个尺寸的尺寸
,请在循环中添加额外的条件for(int i = coord.x?coord.x - 1:0;
i <= coord.x + 1 && i < X_SIZE;
i++)
{
for(int j = coord.y?coord.y - 1:0;
j <= coord.y + 1 && j < Y_SIZE;
j++)
{
if((board[i][j] == bomb) || (board[i][j]==hidden))
{
proximity++;
}
}
}
相关文章:
- 分段故障(堆芯转储)矢量
- Cppcheck生成xml转储文件
- 如何找出GDB的SIGTRAP核心转储的根本原因
- C++映射分割错误(核心转储)
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 浮点异常(核心转储)#694457
- 分段错误(核心转储)但无法弄清楚
- 链接到libkcapi时没有核心转储
- 检测到堆栈粉碎:已终止 中止(核心已转储)
- 正在处理故障(堆芯转储)
- 分段错误(核心转储) - 使用 SavedModel 的 Tensorflow C++ API 进行推断
- 我不知道为什么这段代码会让核心被转储?
- C++运行时错误与快速排序算法抛出堆栈转储错误
- 运行我的代码时出现分段错误(核心转储)问题
- 子数组核心转储问题
- 核心转储?我已经通过我的程序很多次不知道出了什么问题
- 数组列表和使用插入和检索函数的问题(段核心转储)
- gcc转储类层次结构问题
- C 语言中的另一个核心转储问题