Im travaillant sur ce bit de code et je continue à obtenir un défaut de segmentation. Pour la vie de moi je ne peux pas comprendre pourquoi, je sais qu'un défaut de segmentation est quand vous essayez de suivre un pointeur nul, mais la chose est, dans mon code "u-> précédent" n'est pas nul, ni est "u", je vérifié. Si je change la condition dans la boucle while à (u! = NULL), il va itérer deux fois avant de faucher sur "u-> isGreen", Encore une fois, j'ai vérifié chaque itération pour voir si vous étiez nul. "Nodes" est un tableau de pointeurs vers des objets Node réels. Je sais avec certitude que le "u-> précédent" existe dans mes noeuds et "isGreen" est initialisé à false;C++ erreur de segmentation insaisissable
Heres la classe Node, dans le cas où vous souhaitez voir que:
class Node {
public:
GLfloat x, y, z;
int numLinks;
Node *link1;
Node *link2;
GLfloat distance;
Node *previous;
bool isGreen;
Node(GLfloat x, GLfloat y, Node *link1, Node *link2);
Node(GLfloat x, GLfloat y, Node *link1);
Node();
Node(GLfloat x, GLfloat y);
~Node();
bool dijkstra(Node* graph[], Node *source, Node *target); //returns true if a path to target is found
int dist(Node *n1, Node *n2);
int extractOptimalPath(Node* graph[]);
};
Quelle pourrait être la cause du défaut de seg?
vous devez également inclure l'implémentation de la classe 'Node'. –
Quelle est la relation entre 'extractOptimalPath()' et 'extractOptimalPath (Node * graph []);'? – cnicutar
Avez-vous utilisé un débogueur? Cela peut aider à savoir exactement ce que «u» indique (ce n'est pas vraiment suffisant pour savoir que ce n'est pas «0»). –