Probléme avec les tableaux en java

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.
Configuration: Windows 7 / Firefox 3.6

3 réponses

  1. 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
    1. 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?