Bonjour les gens !
Je travail sur un petit projet et j'ai un problème avec une de mes fonction. Cette fonction prend en argument une chaine de caractère, elle insère un marqueur de fin de chaine à la fin du premier mot rencontré et retourne un pointeur sur le mot suivant:
Auriez vous une idée de l'origine de cette erreur de segmentation ???
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 char *lire_mot(char *str, char **pmot_suiv) { int i=0; while( isspace(*(str+i)) )//permet de zapper les espaces de début i++; if(*(str+i)=='"')//type string on coupe donc après le guillemet suivant { do{ i++; if(*(str+i)=='\0') { *pmot_suiv=NULL; return str; } }while( *(str+i)!='"' ); } else { do{ i++; if(*(str+i)=='\0') { *pmot_suiv=NULL; return str; } }while(!isspace( *(str+i) )); } *(str+i)='\0';//ici c'est l'horreur ! valgrind et ddd me disent que l'erreur de segmentation intervient ici i++; while( isspace(*(str+i)) )//si plusieurs espaces entre deux mots, les zape et pointe sur le début du mot suivant i++; *pmot_suiv=(str+i); return str; }
Merci infiniment pour toute aide que vous pourrez m'apporter, parce que la je devient dingue !
Partager