IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comparaison char* et NULL


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut Comparaison char* et NULL
    Salut tout le monde, dans le main de mon application, je dois tester sur 2 paramètres d'entrée.
    Pour cela je dois tester sur les valeurs passées en paramètre comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //déterminer les paramètres de l'application
    	bool maj_auto = false, maj_graphique = true;
    	if (strcmp(argv[1], NULL) > 0)
    	{
    		if(atoi(argv[1]) == 0 || atoi(argv[1]) == 1)
    			maj_auto= atoi(argv[1]);
    	}
     
    	if (strcmp(argv[2], NULL) > 0)
    	{
    		if(atoi(argv[2]) == 0 || atoi(argv[2]) == 1)
    			maj_graphique = atoi(argv[2]);
    	}
    Cependant, le programme crache lors du test entre le 1er argument avec null.
    bien que strcmp demande un const char* mais je ne crois pas que c'est une cause car je crois qu'un char* est const char* sont identique.
    De plus, j'ai essayé de convertir arg[1] en const char* mais rien n'a changé.
    Est ce que quelqu'un pourrait m'indiquer mon erreur et comment remédier à ce problème.
    Je vous remercie d'avance pour votre collaboration.
    Cordialement.

  2. #2
    Membre chevronné Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Par défaut
    strcmp veut comparer 2 chaines de caractères.

    NULL n'est pas une chaine de caractère, c'est une valeur qui vaut 0.

    strcmp(argv[1], NULL) va donc chercher à comparer la chaine de caractères argv[1] avec la chaine de caractères stockées à l'adresse 0 de ton espace mémoire ce qui va provoquer une erreur car l'adresse 0 n'est pas accessible.

    Ce que tu veux faire n'est pas correct, peut être que strcmp(argv[1], "") est ce que tu veux.

    Au fait, avant d'utiliser argv[1] et argv[2], il faut d'abord regarder s'ils sont valides en regardant la variable argc qui indique justement le nombres d'entrées valides dans argv.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 11
    Par défaut
    Même pas besoin de strcmp, juste a regarder si:

  4. #4
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Vous avez raison tout les 2, merci.
    Voici la solution que j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(argc > 2)
    	{
    		if(atoi(argv[1]) == 1)
    			maj_auto= true;		
     
    		if(atoi(argv[2]) == 1)
    			maj_graphique = true;
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comparaison char - caractere
    Par defcon29 dans le forum Débuter
    Réponses: 6
    Dernier message: 01/10/2010, 01h08
  2. pb de comparaison avec des null
    Par jmclej dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 06/07/2009, 15h26
  3. [SQL 2000] Comparaison avec NULL
    Par Yad dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/12/2006, 16h50
  4. Réponses: 31
    Dernier message: 07/12/2006, 11h46
  5. Comparaison entre 2 char
    Par miron dans le forum C
    Réponses: 8
    Dernier message: 29/05/2006, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo