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 :

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

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.