在java中定义了一个二维数组,这样做好像不对,输出时报错, 代码如下

我是想要定义一个二维数组,然后动态地给它赋值,应该怎么做不知道问题出在做么地方,请大神指导一下 ,代码如下:
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][],先分配空间给他

不好意思 ,帮不上你的忙 了,想了好久还是想不出