- int[][][] a = 新的 int[3][3][5];
- int [][][] b = 新的 int[2][][]; b[0] = 新的 int[2]; // 这里为什么我们得到错误。在上面的代码中,java 如何组成每个大括号。
在java中,上面的代码将如何在数组数组的概念中分配内存。
在java中,上面的代码将如何在数组数组的概念中分配内存。
数组int [][][] b = new int[2][][];
是数组数组的数组。b[0]
数组数组也是如此。您只为第一个维度而不是第二个维度分配内存,因此您会遇到错误。尝试b[0] = new int[2][];
这就是为什么我们会出错。在上面的代码中,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 数组,这会导致错误。