Bonjour
J'ai essayé ce matin d'écrire une fonction qui inverse une chaine de caractères en utilisant une pile (LIFO). Voici le code:
Mon code compile mais il génère une erreur de segmentation. Après quelques tentatives de déboguage "manuel" (des printf partout ) j'ai pu déduire que l'erreur vient de cette ligne :
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 void inverser(char **s) { Pile *p; char *aux; int i; pile_vide(&p); aux = *s; while(*aux) { empiler(&p, *aux); aux++; } i = 0; while(!est_vide(p)) { * (*s + i) = depiler(&p); i++; } * (*s + i) = '\0'; }
mais je ne vois pas ce que j'ai fait de mal (bon disons que le langage C et moi, ça fait 2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part * (*s + i) = depiler(&p);
(je peut vous donner le code des fonctions de manipulation de la pile si vous voulez, mais je suis sur à 99% que l'erreur ne vient pas de là).
Cordialement, Gotoma.
Partager