java二维数组空指针异常

java二维数组有空指针异常

 public class LotteryArray {
   public static void main(String[] args) {
    final int NMAX = 10;

    int[][] odds = new int[NMAX + 1][];
    for (int n = 0; n < NMAX; n++)
        odds[n] = new int[n + 1];

    for (int n = 0; n < odds.length; n++)
        for (int k = 0; k < odds[n].length; k++) {
            int la = 1;
            for (int i = 1; i <= k; i++)
                la = la * (n - i + 1) / i;
            odds[n][k] = la;
        }
    for (int[] row : odds) {
        for (int odd : row)
            System.out.printf("%4d", odd);
        System.out.println();
       }
    }
 }

3个回答

int[][] odds = new int[NMAX + 1][]; 数组最大下标NMAX
for (int n = 0; n < NMAX; n++) 这里只循环到NMAX-1,所以最后一个是null

qq_36480624
listen--zz 懂了,谢谢
3 年多之前 回复
qq_36480624
listen--zz 怎么改
3 年多之前 回复

应该是+1 循环的最后一个没有初始化,所以报空指针

谁知道判断数组时为什么用null而不用数组的属性length=0呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问