我是想要定义一个二维数组,然后动态地给它赋值,应该怎么做不知道问题出在做么地方,请大神指导一下 ,代码如下:
int[][] a = null;
a[1] = new int[]{1,2,3};
System.out.println(a[1][1]);
int[][] a = null;
a = new int[5][];//第一维需要初始化
a[1] = new int[]{1,2,3};//这是第二维数据
System.out.println(a[1][1]);
1楼正解。你的a没有初始化
其实你可以直接就写int[][] a=new int[5][];
这样就不用担心不小心忘记初始化了。
使用数组的时候一定要记得初始化,你第一行只是声明了a对象是个二维数组,并没有分配具体的内存空间;
第二行直接给a[1]赋值就会报空指针异常了,a[1]没有具体的内存空间啊。
所以使用数组的时候一定要进行初始化,比如声明
int[][] temp = new int[10][];
如果不知道空间大小,可以像你第一行那样,不过使用的时候一定要先初始化,这里的初始化是声明变量的初始化,而不是带下标的赋值。
上面声明的变量中第二维没有设长度,是因为Java支持不定长赋值,第二维的长度可以不一致,因此只要第一维初始化一个长度就可以了。
a都没有,没有空间还放一个东西先在前面初始化 int[][] a =new int[1][],先分配空间给他
不好意思 ,帮不上你的忙 了,想了好久还是想不出