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

Réseau C Discussion :

erreur segmentation fault à l'execution


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Points : 26
    Points
    26
    Par défaut erreur segmentation fault à l'execution
    Bonjour,

    j'arrive pas à trouver où est le prob dans mon code, ça compile bien, mais quand j’exécute, j'ai une erreur "Segmentation fault"
    en le lançant avec le debogueur gdb, il me dit que c'est sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inet_ntop(AF_INET6, prefix, prefixStr, INET6_ADDRSTRLEN);
    Merci pour l'aide

    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
     
     
            u_char mask[16] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
            u_char prefix[16];
            u_char prefixStr;
            u_char *addrS;
            u_char addr6[16];
     
            addrS="2001:660:7301:4168::3";
     
            inet_pton(AF_INET6, addrS, addr6); 
     
            int i=0;
            for (i = 0; i < 16; i++) {
                    prefix[i] = addr6[i] & mask[i];
            }
     
            inet_ntop(AF_INET6, prefix, prefixStr, INET6_ADDRSTRLEN);
            printf("%s\n", prefixStr);

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    désolé, je viens de faire un changement et maintenant je n'ai plus ce prob.
    j'ai changé la declaration de la variable prefixStr comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    u_char prefixStr[INET6_ADDRSTRLEN];
    mais j'aimerais bien avoir des explications si possible, parce que je suis débutant en C !!

    Merci

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Quand tu écris Tu crées un caractère.

    Quand tu écris Tu crées un tableau de caractères.
    Mais tab ne contiendra pas un caractère, mais l'adresse en mémoire du tableau de caractères.

    Quand tu as appelé la fonction inet_ntop dans le premier cas, la fonction attendait une adresse mémoire pour aller écrire des choses, tu lui a donné un caractère qui n'avait pas de sens pour elle. (en vrai, elle a utilisé le caractère donné comme un adresse mémoire et a donc tenté d'aller écrire n'importe où en mémoire. heureusement, l'OS s'en est rendu compte et à déclenché le signal).

    Je te conseille la lecture de http://emmanuel-delahaye.developpez....age=Page5#LXXI pour aller plus loin.
    Dernière modification par Deepin ; 28/07/2011 à 09h08.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    Merci bcp, je vois mnt le pourquoi

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

Discussions similaires

  1. Matplotlib: erreur Segmentation fault
    Par L1011 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 11/05/2011, 16h38
  2. Traiter une erreur "Segmentation Fault"
    Par Looney dans le forum Débuter
    Réponses: 5
    Dernier message: 30/04/2009, 06h51
  3. erreur "Segmentation Fault" lors de l'import d'un dump
    Par farenheiit dans le forum Import/Export
    Réponses: 13
    Dernier message: 28/11/2007, 10h17
  4. Réponses: 2
    Dernier message: 08/04/2007, 17h23
  5. [erreur] Segmentation fault
    Par fveysseire dans le forum C
    Réponses: 11
    Dernier message: 15/06/2006, 14h44

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