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

avec Java Discussion :

Que signifie une erreur de pointeur?


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 156
    Points : 52
    Points
    52
    Par défaut Que signifie une erreur de pointeur?
    Bonsoir !
    Je cherche à développer un programme Java qui effectue l’algorithme de détection de circuits dans un graphe :

    1. Représenter G par le dico des suivants et des précédents
    2. Tant qu’il existe un sommet dont la liste est vide, on le retire de partout où il apparait.


    A la fin si tous les sommets sont supprimés: pas de circuits.


    Mais en compilant mon code j’ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
    	at Algorithm.DetctionCircuitsGraphe.Vertice.addFollower(DetectionCircuitsGraphe.java:37)
    	at Algorithm.DetctionCircuitsGraphe.DetectionCircuitsGraphe.main(DetectionCircuitsGraphe.java:12)
    Je ne sais pas ce qu'elle représente... Pourtant je n'ai pas de rouge dans Eclipse. Pouvez vous m'aider?

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    import java.util.*;
     
    public class DetectionCircuitsGraphe {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Vertice v1= new Vertice();
    		Vertice v2=new Vertice();
    		Vertice v3 =new Vertice();
    		v1.addFollower(v2,0);
    		v1.addFollower(v3,1);
    		v2.addFollower(v3, 0);
    		FollowersArray Dictionnaire= new FollowersArray(v1);
    		FollowersArray.addVertice(v2);
    		FollowersArray.addVertice(v3);
    		for(int i=0;i <= FollowersArray.Followers.length;i++){
    			for (int j=0;j <= FollowersArray.Followers[i].length;j++){
    				if (FollowersArray.Followers[i][0]==null){
    					FollowersArray.Followers[i]=null;
    				}
    		}
     
     
    		}
     
    	}
     
    }
     
    class Vertice{
    	int ref;
    	Vertice Followers [];
     
    	void addFollower(Vertice follower, int ref){
    		Followers[ref]=follower;
    	}
    }
     
    class FollowersArray{
    	static int refVertice;
    	static int ref=0;
    	static Vertice Followers [][];
     
    	FollowersArray(Vertice v){
    		refVertice=++ref;
    		Followers[refVertice][0]=v;
    		for(int i=0;i< v.Followers.length;i++){
    			Followers[refVertice][i]=v.Followers[i];
    		}
     
    	}
    	static void addVertice(Vertice v){
    		refVertice=++ref;
    		Followers[refVertice][0]=v;
    		for(int i=0;i< v.Followers.length;i++){
    			Followers[refVertice][i]=v.Followers[i];
    		}
     
    	}
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Cela signifie qu'à la ligne 37 de DetectionCircuitsGraphe.java tu essaie d'accéder à une propriété ou une methode d'un objet null. En l'occurrence c'est ton tableau Followers qui est null. Impossible donc d'y stocker quoi que ce soit.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ce n'est pas à la compilation que tu as l'erreur, c'est à l’exécution.
    https://docs.oracle.com/javase/7/doc...Exception.html

    Déclenché lorsqu'une application essaie d'utiliser null dans le cas où un objet est requis. Ceci inclus :

    Appeler la méthode d'un objet null.
    Accéder ou modifier la valeur des champs d'un objet null.
    Appeler length sur un tableau null.
    Accéder ou modifier les 'cases' d'un tableau null
    Faire un throw null.
    Ici tu as surement une valeur a null dans ton tableau ou un tableau à null.

    at Algorithm.DetctionCircuitsGraphe.Vertice.addFollower(DetectionCircuitsGraphe.java:37)Regarde ta classe Vertice, ton tableau n'est jamais initialisé.
    Il vaut null et tu tentes d'accéder a la case 'ref' pour y mettre un élément.
    En java, tu dois initialiser on tableau avant de l'utiliser et sa taille est invariable.
    Tu peux essayer une autre collection, du style Map par exemple si tu stock la ref en tant que clé.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/02/2012, 16h37
  2. Que signifie une base de données xBase/hyperFile ?
    Par alexia_78 dans le forum Débuter
    Réponses: 1
    Dernier message: 31/03/2009, 12h31
  3. Que signifie cette erreur de compilation ?
    Par Premium dans le forum C
    Réponses: 14
    Dernier message: 22/05/2006, 23h16
  4. [SQL-Server] 'Bad column offset' que signifie cette erreur ?
    Par dor_boucle dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 08/02/2006, 15h01
  5. [SQL][DERBY] Que signifie cette erreur ?
    Par irenee dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/12/2005, 14h34

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