Bonsoir
Voila j'ai passé plus de cinq heures à rechercher l'origine de l'erreur de segmentation dans mon programme et à la fin voila l'erreur :
Le problème que lorsque je lance le programme avec le débogueur tout marche bien et j'ai essayé sur Linux et ça marche avec et sans gdb. Sur un autre PC (sur Ubunutu ) ça marche qu'avec gdb.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //fonction getPos dans prog.h if(c >= 'a' && c <= 'Z'); //l'origine de l'erreur point virgule après le if return (int) (c-'a'); return -1; //et après dans une autre fonction dans prog.c : int pos = getPos(c); if(pos == -1) return NULL; return tab[pos]; //erreur de segmentation
Quelqu'un peut m'expliquer tous ça. Si sans le débogueur il y a une instruction tab[-90] alors normalement elle y est avec le débogueur et pourquoi sur mon linux ça marche sans et avec le débogueur.
Et le plus important pourquoi gcc n'a pas signalé un avertissement malgré le -Wall.
J'espère que quelqu'un pourra m’éclairer sur ça et merci d'avance.
Partager