我创建了一个带有2d整数数组的类作为成员。我想要的是,当我通过构造函数实例化x
实例时,该成员被x
矩阵动态分配为truck
。这是我的代码:
public class truck
{
public int[][] mat;
truck(int x)
{
mat = new int[x][x];
for(int i=0;i<x;i++)
for(int j=0;j<x;j++)
mat[i][j]=0;
}
}
它给了我以下错误:
无效的排名说明符:预期','或']'
就在这一行:mat = new int[x][x];
为什么它会给我这个错误?
答案 0 :(得分:3)
您无法像这样初始化jagged array。您必须先初始化第一个维度,然后初始化元素:
mat = new int[x][];
//now you can do this:
mat[0] = new int[x];
...
也许您想要一个multidimensional数组?
public int[,] mat;
...
mat = new int[x,x];
答案 1 :(得分:1)
通过使用[][]
,您可以创建一个数组数组。这意味着第一维的每个元素都包含一个数组
这就是为什么你需要初始化x
数组而不只是一个。
你可以通过以下方式做到:
for (int i=0; i<x; i++) mat[i] = new int[x];
如果您只需创建二维矩阵,则可以使用int[,]
代替int[][]
。在这种情况下,您可以像mat = new int[x,x]