[Fichier]Problème avec strdup et parcours de chaine
Bonjour, en fait je voudrai découper une chaine passé en sous chaine pour les ranger dans un tableau. J'ai une erreur de segmentation au niveau de *(s+i) = '\0';
J'ai une segmentation fault que je ne comprend pas ...
Code:
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 47 48 49 50
| void initFicOff(){
FILE *fd =fopen("venus.off","r");
char *s="Bonjour les amis";
char **ligne;
//s = fgets(s, 1024, fd);
ligne = strTab(s);
}
//fonction qui calcul le nombre de mots dans la ligne (séparateur: '\t')
int mots(char *s)
{
int i;
int cpt;
for (i=0, cpt=1; s[i]!=0; i++)
{
if (s[i] == ' ') cpt++;
}
return cpt;
}
char **strTab(char *s){
int nbm;
int i,j=0;
char **mtab;
nbm = mots(s);
mtab = malloc(sizeof(*mtab) * nbm + 1);
for (i=0, nbm=0; s[i] !='\n' && s[i] != '\r' && s[i] !=0; i++)
{
if (s[i] ==' ')
{
*(s+i) = '\0';
mtab[nbm] = strdup(s);
*s=*(s+i)+1;
nbm++;
}
}
*(s+i) = '\0';
mtab[nbm++]=strdup(s);
mtab[nbm]=0;
return (mtab);
} |
Merci d'avance pour votre aide :)
Re: [Fichier]Problème avec strdup et parcours de chaine
Citation:
Envoyé par reyman
Merci d'avance pour votre aide :)
Merci de poster du code qui compile. On ne peut pas deviner ce que tu as oublier...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
main.c: In function `initFicOff':
main.c:11: error: `FILE' undeclared (first use in this function)
main.c:11: error: (Each undeclared identifier is reported only once
main.c:11: error: for each function it appears in.)
main.c:11: error: `fd' undeclared (first use in this function)
main.c:11: warning: implicit declaration of function `fopen'
main.c:17: warning: implicit declaration of function `strTab'
main.c:17: warning: assignment makes pointer from integer without a cast
main.c: At top level:
main.c:33: error: conflicting types for 'strTab'
main.c:17: error: previous implicit declaration of 'strTab' was here
main.c: In function `strTab':
main.c:39: warning: implicit declaration of function `malloc'
main.c:47: warning: implicit declaration of function `strdup'
main.c:35: warning: unused variable `j' |