Considera:
int[][] multD = new int[5][];
multD[0] = new int[10];
¿Es así como se crea una matriz bidimensional con 5 filas y 10 columnas?
Vi este código en línea, pero la sintaxis no tenía sentido.
Prueba lo siguiente:
int[][] multi = new int[5][10];
...que es una abreviatura de algo así:
int[][] multi = new int[5][];
multi[0] = new int[10];
multi[1] = new int[10];
multi[2] = new int[10];
multi[3] = new int[10];
multi[4] = new int[10];
Tenga en cuenta que cada elemento se inicializará con el valor por defecto para int
, 0
, por lo que lo anterior también es equivalente a:
int[][] multi = new int[][]{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
El lenguaje más común para crear un array bidimensional con 5 filas y 10 columnas es:
int[][] multD = new int[5][10];
Alternativamente, podrías usar lo siguiente, que es más similar a lo que tienes, aunque necesitas inicializar explícitamente cada fila:
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
Inténtalo:
int[][] multD = new int[5][10];
Observa que en tu código sólo la primera línea del array 2D se inicializa a 0.
Las líneas 2 a 5 ni siquiera existen. Si intentas imprimirlas obtendrás null
para cada una de ellas.