我正在为我的课程做一个程序,我需要在开始之前将数组'decade'的所有值设置为-1。我尝试了这一点(以及for循环中的版本),这让我陷入了无限循环!有人可以解释为什么会这样吗,我该如何解决?
码:
int decade[9][9], i = 0, k = 0;
while (i<10) {
while (k<10) {
printf("i is %d, k is %d\n",i,k);
decade[i][k] = -1;
k++;
}
k=0;
i++;
}
提前致谢!
它输出如下:
对于将来需要答案的任何人,请将十年声明为“ decade [10] [10]”,而不是“ decade [9] [9]”,或者定义为您。
最佳答案
当声明大小为9
的数组时,它的索引从0
到8
。您进入9
,它将覆盖内存。这是未定义的行为,可能会导致许多细微但有缺陷的行为。