IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Erreur pointeur dans mon tableau


Sujet :

Collection et Stream Java

  1. #1
    Candidat au Club Avatar de Aseis
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Erreur pointeur dans mon tableau
    Bonjour,

    J'ai commencé il y a quelques mois à m'intéresser au développement (en Java, donc) dans l'espoir de créer des automates cellulaires.
    J'ai essayé de mettre en pratique ce que j'ai appris sur les tableaux mais je ne comprends pas pourquoi le compilateur m'indique une erreur de pointeur, qu'il m'indique comme étant Null.

    Je poste ci-dessous le morceau de code, assez maladroit j'imagine, que j'ai tenté de reformuler avec des objets ; car j'avais au départ créé un tableau avec des valeurs symbolisant l'état de mort, de vie au prochain tour ou de vie active.
    Le morceau ne correspond pour l'instant qu'à un test assez sommaire pour afficher différemment les cases extérieures, que je croyais à l'origine de mon problème de pointeur.

    Si je vais dans la mauvaise direction avec des boucles et ces objets, n'hésitez pas à me le signaler !

    Merci à vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public class App {
     
    	public static Tile tab [] [] = new Tile [20] [20];
     
    	public static void main(String [] args)
    	{
    		check();
    		display();
    	}
     
    	public static void check()
    	{
    		int i, j;
     
    		for(i=1; i<(tab.length-1); i++)
    		{
    			for(j=1; i<(tab[0].length-1); j++)
    			{
    				tab[i][j].wLive=true;
    			}
    		}
    	}
     
    	public static void display()
    	{
    		int i, j;
     
    		for(i=0; i<tab.length; i++)
    		{
    			for(j=0; j<tab[0].length; j++)
    			{
    				if(tab[i][j].wLive==true)
    					System.out.print("X");
    				else
    					System.out.print("?");
    			}
    			System.out.println();
    		}
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Tile {
     
    protected boolean live;
    protected boolean wLive;
     
    public Tile()
    {
    	live = false;
    	wLive = false;
    }
     
    }

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 131
    Points : 203
    Points
    203
    Par défaut
    Salut,

    En regardant rapidement ton code, on peut voir que dans ta methode check() qui rempli ton tableau 2D, la condition dans ta boucle est i < tab.length -1 alors que dans ta seconde methode la condition est i < tab.length qui te menera donc a une case sans valeur lorsque i == tab.length - 1

  3. #3
    Candidat au Club Avatar de Aseis
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Yonito Voir le message
    Salut,

    En regardant rapidement ton code, on peut voir que dans ta methode check() qui rempli ton tableau 2D, la condition dans ta boucle est i < tab.length -1 alors que dans ta seconde methode la condition est i < tab.length qui te menera donc a une case sans valeur lorsque i == tab.length - 1
    J'ai créé des constructeurs qui initialisent mes Tile à false, false pour les boolean, alors je ne pense pas que ce soit ça.
    Mon code d'erreur confirme que l'erreur vient de plus haut encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
    	at premier.App.check(App.java:22)
    	at premier.App.main(App.java:9)
    Des idées ?

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2013
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 131
    Points : 203
    Points
    203
    Par défaut
    ce code n'est pas bon :
    Dans ta methode check(), ta valeur tab[i][j] est null (ton tableau n'a pas recu de valeur encore), tu ne peux donc pas faire un appel a wLive

Discussions similaires

  1. Message d'erreur dans mon tableau
    Par SlimEmShady dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2015, 12h37
  2. Réponses: 2
    Dernier message: 26/12/2006, 12h49
  3. Réponses: 9
    Dernier message: 12/05/2006, 09h06
  4. Réponses: 4
    Dernier message: 28/10/2005, 13h32
  5. J'ai un TH dans mon tableau et j'aimerais faire en sorte qu'
    Par hstlaurent dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 12/09/2005, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo