其实,我觉得一楼把代码改成下面这个,提问者更能理解:
public class Test {
/**
* @param args
*/
public static void main(String[] args)
{
int a[][]=new int[5][];
for(int i=0;i
a[i]=new int[i+1];//动态生成一维数组-----只改了这行
}
}
}
java里面的二维数组,不是一个矩形的。。二维数组可以看成是一个一维数组,但是数组的元素也是一维数组。。且各个数组元素的大小可以不同
public class Test {
/**
* @param args
*/
public static void main(String[] args)
{
int a[][]=new int[5][];
for(int i=0;i
a[i]=new int[5];//动态生成一维数组
}
}
}
不知道你的动态分配内存是在说什么,
是说动态分配数组长度吗?
可以这样写假设数组类型为int
public static int[][] m1(int size){
int[][] ints= new int [size][];
return ints;
}
调用m1创建一个int 二维数组,只给外的的维度设定长度
不知道是不是你要的结果,数组创建必须指定长度这是java语法的要求
所谓数组理论上是不能动态分配的,你所说的动态分配内在问题
实际上是先计算数组的长度然后根据长度再开辟内存的!