Erreur de segmentation en C
Numéro
-
tafiscobar Messages postés 1281 Statut Contributeur -
tafiscobar Messages postés 1281 Statut Contributeur -
Bonjour,
en compilant ce code ,j'ai un seg fault mais je ne vois pas d'erreur.
Est ce que vous pourriez m'aider.
Merci
en compilant ce code ,j'ai un seg fault mais je ne vois pas d'erreur.
Est ce que vous pourriez m'aider.
Merci
void tri(char **tab, int(*cmp)(void *, void *))
{
char **p1,**p2;
for(p1=tab; *p1!=NULL; p1++)
for(p2=p1+1; *p2!= NULL; p2++)
if((*cmp)(*p1,*p2) > 0)
{
char buf[BUFSIZ];
strcpy(buf,*p1);
strcpy(*p1,*p2);
strcpy(*p2,buf);
}
}
void print(FILE *f, char **tab)
{
for( ; *tab!=NULL; ++tab)
fprintf(f,"%s\n",*tab);
}
int main(int argc, char *argv[])
{
char **t = malloc(sizeof(char *)*argc);
if(t == NULL)
{
fprintf(stderr,"erreur \n");
return EXIT_FAILURE;
}
unsigned int l,i;
l = (unsigned int) argc-1U;
for(i = 0; i<l; i++)
{
t[i] = malloc(strlen(argv[i+1])+1);
if(t[i] == NULL)
{
fprintf(stderr,"erreur \n");
return EXIT_FAILURE;
}
strcpy(t[i],argv[i+1]);
}
t[l] = NULL;
print(stdout,t);
tri(t,&strcmp));
print(stdout,t);
return EXIT_SUCCESS;
}
A voir également:
- Erreur de segmentation en C
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
1 réponse
salut, mwa je ne vois pas d'erreur, en plus je l'ai testé (gcc 4.0), il marche. Maintenant si tu testes ta fonction de tri avec des structures, il ne marchera pas, c'est sûr. En effet, tu utilises strcpy qui n'existe qe pour les char*. Donc soit tu copies les pointeurs et ca marche pour n'importe quel objet mais tu dois faire attention aux fuites de mémoire soit tu demandes une fct de copie ds ta signature et tu l'utilises.