忆北 发表于 2023-11-2 20:49:45

数组越界


int[][] array1 = new int;
array1 = 11;
array1 = 11;
array1 = number;
int[][] array2 = new int]];
for (int i = 0; i < array1.length; i++) {
array2]] = array1;             // 这里显示数组越界了为啥,我这简单描述一下,真是不知道为啥啊,大佬帮帮我
}      

isdkz 发表于 2023-11-2 20:50:08

问题出在循环的条件上。你的循环条件是i < array1.length ,但实际上array1的长度是number+1 ,而不是number 。因此,当i等于number时, array1是越界的。

要解决这个问题,你可以将循环条件修改为i < array1.length-1 ,这样就可以避免访问到越界的元素。修改后的代码如下:

int[][] array1 = new int;
array1 = 11;
array1 = 11;
array1 = number;
int[][] array2 = new int]];
for (int i = 0; i < array1.length-1; i++) {
    array2]] = array1[ i];
}


这样修改后,循环将只会遍历array1的有效索引,不再越界。
页: [1]
查看完整版本: 数组越界