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 :

Segmentation fault avec strcmp [Débutant(e)]


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 26
    Points
    26
    Par défaut Segmentation fault avec strcmp
    Bonjour à tous

    J'ai une segmentation fault lorsque j'utilise strcmp dans le contexte suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    typedef struct
    {
    	char pchLabel[256];
    	char pchValue[256];
    } structLabelValue;
     
     
    char* getOidValueFromArray(structLabelValue* array, const char* pchOidLabel )
    {
    	int nOidNum = 0;
    	char* pchValue = (char*) malloc (256);
     
    	for ( nOidNum = 0; nOidNum < 256; nOidNum++ )
    	{		
    		if ( !strcmp(array[nOidNum].pchLabel, pchOidLabel) )
    			strcpy(pchValue, array[nOidNum].pchValue);
    	}
     
    	return pchValue;
    }
     
     
    void main(int argc, char *argv[])
    {
    	char* pchOidValue;
     
    	pchOidValue = getOidValueFromArray(arrayLabelValue, "networkSatIfOamIpAddrOID_0");
     
    	free(pchOidValue);
    	pchOidValue = NULL;
    }
    Qu'en pensez-vous ?

  2. #2
    Membre régulier Avatar de Beldom
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 63
    Points : 70
    Points
    70
    Par défaut
    Je dirais comme ca que c'est parceque tu n'as pas déclaré la structure que tu utilise dans le main. Elle sort d'on ne sait où...

    Donc ta fonction reçois... N'importe quoi je dirais ^^

    Tu n'as pas de warning à la compilation ? C'est ce qui m'étonne le plus en fait

    (Note : Je parle de cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	pchOidValue = getOidValueFromArray(arrayLabelValue, "networkSatIfOamIpAddrOID_0");
    Et de arrayLabelValue, qui n'a jamais été déclaré au préalable

    )
    La balise [code] et le tag résolu, c'est bien !
    Rôliste pas toujours éclairé et fan de Star Wars

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 113
    Points
    113
    Par défaut
    tu à montrer ton ton code là ? car sinon il manque les includes des librairies standars que tu utilise.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Effectivement il n'y a pas tout mon code, ni la construction de mon tableau de structures, je pense que le problème se situe plutôt là, je vais chercher et reviendrai si jamais il y a un problème, merci quand même

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par FenX.
    J'ai une segmentation fault lorsque j'utilise strcmp dans le contexte suivant :
    Qu'est-ce qui dit que les champs lus sont des chaines valides ?
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Ca doit être ça oui, je n'ai aucune vérification sur le contenu avant de faire mon strcmp...

    Merci !

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par FenX.
    Ca doit être ça oui, je n'ai aucune vérification sur le contenu avant de faire mon strcmp...
    C'est plus un problème de conception. Les champs en question sont-ils censés contenir une chaine C valide ?
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/11/2007, 18h44
  2. segmentation fault avec wxGLCanvas
    Par Ardeciel dans le forum wxWidgets
    Réponses: 1
    Dernier message: 20/03/2007, 20h13
  3. Probleme de segmentation fault avec sprintf
    Par MathG dans le forum C++
    Réponses: 5
    Dernier message: 14/12/2006, 01h12
  4. Segmentation fault avec glCompressedTexImage2DARB
    Par patbier dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/12/2005, 10h32
  5. Pb segmentation fault avec glutinit()
    Par pipistrelle dans le forum GLUT
    Réponses: 2
    Dernier message: 17/11/2004, 23h17

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