Segmentation fault

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 !
Configuration: Windows Vista Internet Explorer 7.0

4 réponses

  1. J'ai testé ton code, il marche parfaitement chez moi ....

    ./tools -comp

    Nb option for -comp
    1
    1. 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???
      0
      1. 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...
        0
        1. Le problème est résolu, merci pour votre aide à tous les deux.

          Vous n'auriez pas pu trouver, l'erreur venait d'une ligne que je n'ai pas postée...
          0