我有一个二维数组,里面有信息,有10个索引。当我运行以下代码时:
for(int studentIndex = 0; studentIndex < numOfStudents; studentIndex++)
{
if(grade[studentIndex][9] > 59){
grade[studentIndex][10] = 1; // 1 stands for pass
}else{
grade[studentIndex][10] = 0; // 0 stands for fail
}
}
grade[studentIndex][10]
更改了下一个索引的grade[studentIndex][0]
。问题出在那里,因为当我cout
在此部分之前索引0时,该值很好但在此之后它变为1或0.
答案 0 :(得分:3)
在大小为10的数组中,最高指数为9,因为索引从0开始。我猜测等级[index] [10]基本上是将指针推向等级[index + 1] [0]并且这就是你看到这种行为的原因。你需要将学生信息数组扩大到11或者弄清楚你的索引是否错误。
答案 1 :(得分:2)
下一个索引的等级[studentIndex] [0]
这使得grade
被定义为int grade[numOfStudents][10]
(或在该方向上的某些内容)。子阵列的有效索引仅为0
到9
。