Segmentation fault
Michelin
-
Michelin -
Michelin -
Bonjour,
Lorsque je tape ./tools -comp, on me renvoie l'erreur : segmentation fault ./tools -comp
Je devrais avoir : Nb option for -comp
Ca marche si je mets ./tools -comp argument1
Le programme tools compile sans problème. Voici le début :
int main (int argc, char* argv[])
{
if (argc<2)
{
printf ("Usage: fault\n");
return 1;
}
if (strcmp(argv[1], "-comp") == 0)
{
if (argc != 4)
{
printf (" Nb option for -comp\n");
return 2;
}
if (strcmp(argv[2], argv[3]) == 0)
printf ("Equal\n");
else
printf ("Different\n");
return 0;
}
J'ai mis en gras la ligne qui me semblait être en cause en premier lieu.
Quelqu'un aurait une idée ?
Merci d'avance, et bonne journée !
Lorsque je tape ./tools -comp, on me renvoie l'erreur : segmentation fault ./tools -comp
Je devrais avoir : Nb option for -comp
Ca marche si je mets ./tools -comp argument1
Le programme tools compile sans problème. Voici le début :
int main (int argc, char* argv[])
{
if (argc<2)
{
printf ("Usage: fault\n");
return 1;
}
if (strcmp(argv[1], "-comp") == 0)
{
if (argc != 4)
{
printf (" Nb option for -comp\n");
return 2;
}
if (strcmp(argv[2], argv[3]) == 0)
printf ("Equal\n");
else
printf ("Different\n");
return 0;
}
J'ai mis en gras la ligne qui me semblait être en cause en premier lieu.
Quelqu'un aurait une idée ?
Merci d'avance, et bonne journée !
4 réponses
Euh déjà es - tu sur que c'est l'élément 1 que tu souhaites accéder?
if (strcmp(argv[1], "-comp") == 0)
Parce que pour avoir un semgentation fault c'est que tu dois accéder illégalement à de la mémoire non autorisée.
D'où la question tu es sûr de ton argv???
if (strcmp(argv[1], "-comp") == 0)
Parce que pour avoir un semgentation fault c'est que tu dois accéder illégalement à de la mémoire non autorisée.
D'où la question tu es sûr de ton argv???
kuchi007 : je ne vois pas trop ce que tu veux dire. argv[1], c'est bien le "-comp" passé en argument ? Le "if (strcmp(argv[1], "-comp") == 0)" signifie : "si le premier argument passé en ligne de commande est -comp" ; où serait le problème ?
Merci d'avoir essayé Nanarpim. Je ne vois pas pourquoi ça ne marche pas chez moi...
Merci d'avoir essayé Nanarpim. Je ne vois pas pourquoi ça ne marche pas chez moi...