Probléme avec les tableaux en java

Fermé
rwikus Messages postés 871 Date d'inscription lundi 29 décembre 2008 Statut Membre Dernière intervention 18 mai 2012 - 22 févr. 2010 à 01:01
 Utilisateur anonyme - 23 févr. 2010 à 10:27
Bonjour,
voia depuis un bon moment je plante face a ce morceau de code qui devrai marcher sans probléme mais eclipse m'affiche toujours sa:
Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:13)
voila le code:

public static void main(String[] args) {

int tab[][]=new int[4][];
int t[]={1,2,3,4};
tab[0]=t;
int t2[]={1,2,3,4};
tab[1]=t2;



for(int i=0;i<tab.length;i++){
for(int j=0;j<tab[i].length;j++){
System.out.print(tab[i][j]);
System.out.print(" ");
}
System.out.println();
}

merci de bien vouloir m'aider.
A voir également:

3 réponses

Utilisateur anonyme
22 févr. 2010 à 06:19
Salut,

Non çà ne peut pas marcher avec:

int tab[][]=new int[4][]; 


Un tableau de ce type peut être considéré comme une table de x lignes de y colonnes.

Il faudrait que ton tableau (multi dimensions) soit d'éclaré comme ceci:

int tab[][]=new int[x][y]; 

Or tu le déclares avec x = 4 et y = rien, soit 4 lignes, pas de colonnes...

Et en plus, il faudrait que tu nous dises exactement ce que tu veux faire pour qu'on puisse analyser le code qui suit.

Cordialement,

dan
0
rwikus Messages postés 871 Date d'inscription lundi 29 décembre 2008 Statut Membre Dernière intervention 18 mai 2012 56
23 févr. 2010 à 02:47
voila le morceau de code qui m'a intrigué: et pour les x et les y je suis d'accord avec toi sauf pour les "y" car en java tu peux ne pas déclarer le nombre de colonne sachant qu'il peut étre différent a chaque ligne et donc chaque ligne pointera vers un vecteur.

byte[][] data = new byte[3][];
byte []tab={1,2,3,4,5,6};
// Code les données
for(int i=0;i<3;i++)
data[i]=tab;

for (int i=0; i < data.length; i++) {
for (int j=0; j < data[i].length; j++) {
System.out.print(data[i][j] + " ");
}
System.out.println();
}
System.out.println();

// Simule des erreurs de transmission
data[1][2] = 10;

c'est lorsque j'affecte "10" au data[1][2] il me l'affecte aussi au data[0][2 ]et au data[2][2] et je comprend pas pourquoi?
0
Utilisateur anonyme
23 févr. 2010 à 10:27
Salut,

Bon, puisque tu persistes à vouloir utiliser une matrice mal "dimensionnée", je vais te conseiller d'oublier cette méthode et de voir ce que tu peux faire avec java.util.ArrayList .

https://docs.oracle.com/javase/7/docs/api/ classe ArrayList

Cordialement,

Dan
0