java怎么给二维数组赋值 为什么java这样给二维数组赋值不行?

为什么java这样给二维数组赋值不行?数组[[int]=4的下标是在代码操作中创建的,但数组的最大长度是4int[n-1][n-1]根据调试信息,我们可以看到n=5,即我们创建了一个4x4二维数组,第

为什么java这样给二维数组赋值不行?

数组[[int]=4的下标是在代码操作中创建的,但数组的最大长度是4

int[n-1][n-1

]根据调试信息,我们可以看到n=5,即我们创建了一个4x4二维数组,第一个是数组[0][0],最后一个是数组[3][3]。在断点的直线上,我们可以看到n-1=4,b1=3,也就是说,数组[4][3]被访问,这显然是越界的。您可以尝试扩展数组或根据自己的要求修改其他逻辑来更正错误。

怎么把二维数组的值赋给一维数组?

有两种方法可以做到这一点:

1按元素赋值:

遍历一维数组,并将每个元素分配给二维数组的相应元素。

或遍历二维数组,并将每个元素指定给一维数组的相应值。

优点是操作灵活,可根据需要任意赋值。

2当一维数组的类型与二维数组的类型相同,赋值顺序与一维数组中的存储顺序相同时,可以使用memcpy方法一次直接赋值。

比如一维数组是a,二维数组是B,基本类型是type,要分配的元素个数是n,就可以调用

memcpy(B,a,sizeof(type)*n)

这个方法简单有效。

但是,有许多先决条件。当上述条件都满足时,memcpy就更简单了。