-1
  1. int[][][] a = 新的 int[3][3][5];
  2. int [][][] b = 新的 int[2][][]; b[0] = 新的 int[2]; // 这里为什么我们得到错误。在上面的代码中,java 如何组成每个大括号。

在java中,上面的代码将如何在数组数组的概念中分配内存。

4

2 回答 2

0

数组int [][][] b = new int[2][][];是数组数组的数组。b[0]数组数组也是如此。您只为第一个维度而不是第二个维度分配内存,因此您会遇到错误。尝试b[0] = new int[2][];

于 2018-12-07T06:56:01.740 回答
0

这就是为什么我们会出错。在上面的代码中,java 如何组成每个大括号。

int [][][] b = new int[2][][];   //b is an array of (array of (array of int))
b[0] = new int[2];               //b[0] is an (array of (array of int))

您分配int[2]的只是一个 (int 数组) to b[0],因此给您错误。

b[0] = new int[2][];             //assign (array of (array of int)) to b[0] --> OK

简而言之,b[0]需要一个 2D 数组,而您当前正在为其分配一个 1D 数组,这会导致错误。

于 2018-12-07T07:01:25.400 回答