为什么会产生无限循环(C,While循环)

Bea*_*s16 2 c loops infinite while-loop

我正在为我的班级做一个程序,我需要在开始之前将数组'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++;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

它打印出来: 什么打印出来

对于任何需要未来答案的人来说,将十年称为"十年[10] [10]"而不是"十年[9] [9]",或者无论如何定义.

Som*_*ude 6

声明一个大小数组时,9它的索引来自0to 8.你去9哪个会覆盖内存.这是未定义的行为,可能导致任何数量的微妙但错误的行为.