在Java中,以上代码将如何在array的数组概念中分配内存。
答案 0 :(得分:0)
数组int [][][] b = new int[2][][];
是数组array的数组。
因此b[0]
是一个数组数组。您只为第一个维度分配内存,而不为第二个维度分配内存,因此会出现错误。尝试b[0] = new int[2][];
答案 1 :(得分: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]
分配给b[0]
只是一个(整数数组),因此会给您错误。
b[0] = new int[2][]; //assign (array of (array of int)) to b[0] --> OK
简而言之,b[0]
需要一个2D数组,而您当前正在为其分配一个1D数组,这会导致错误。