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 :

erreur de segmentation


Sujet :

C++

  1. #1
    Membre régulier Avatar de transistor49
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 184
    Points : 95
    Points
    95
    Par défaut erreur de segmentation
    Bonjour,
    j'ai fini de programmer une classe mais j'ai des erreur de segmentation!!!
    sur les lignes suivante car j'ai réussi a voir ou elle bloquait!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->adrMacSrc = QString (ether_ntoa ((const struct ether_addr* )ether->ether_shost));
    ainsi qu'a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	this->longueurPaquet = htons (ip_info->ip_len);
    et les erreur de segmentation sont assez difficile a corriger!!!!!
    merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 130
    Points : 115
    Points
    115
    Par défaut
    Bah erreur de segmentation, ça vient pas de tes pointeurs qui sont NULL ?

  3. #3
    Membre régulier Avatar de transistor49
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 184
    Points : 95
    Points
    95
    Par défaut
    c'est bien se que je me suis dit mais quand je leur donne des valeur, il plante!
    en faite c'est dans le testeur le probleme car il faut que je passe une valeur dans le constructeur, en const u_char mais il n'en veut pas!!!!!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	//Construction de la classe à tester
    	const u_char * packet = "0f0a202100de";
        cout << "Construction de l'instance de classe (objet) TrameEthernet" << endl;
        TrameEthernet *trameethernet = new TrameEthernet(packet);

  4. #4
    mat.M
    Invité(e)
    Par défaut
    const u_char * packet = "0f0a202100de";
    le fait d'utiliser u_char me chagrine un peu ; est-ce qu'il faut passer une chaîne de caractêres ?
    Vérifier si au bout de la chaîne il y ait le code \0

  5. #5
    Membre régulier Avatar de transistor49
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 184
    Points : 95
    Points
    95
    Par défaut
    Il n'y a pas besoin de \0, ce qui sera censer etre dedans sont des trames éthernet!!!!
    et je doit dire que se genre d'erreur me prenne la tete! c'e'st pour un projet informatique, J'essaie de comprendre se que je fait! mais quand je crois avoir réussi et compris quelque chose, sa ne marche pas! nous n'avons aucune aide et des connaissance de base, mais les base pas plus!!!

  6. #6
    mat.M
    Invité(e)
    Par défaut
    Il n'y a pas besoin de \0, ce qui sera censer etre dedans sont des trames éthernet!!!!
    Sorry l'ami mais sans le code terminateur \0 , une chaîne de caractêre ça fait planter strcpy ou strcat en C....
    Et const u_char pour moi c'est pour gérer des chaînes de caractêres puisque tu ouvres les côtes

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Sorry l'ami mais sans le code terminateur \0 , une chaîne de caractêre ça fait planter strcpy ou strcat en C....
    Bah, s'il se contente de transferer ses octets via des sockets il n'aura pas besoin d'un 0, la taille des données étant ce qui sert de délimiteur.

    j'ai fini de programmer une classe mais j'ai des erreur de segmentation!!!
    sur les lignes suivante car j'ai réussi a voir ou elle bloquait!
    Et que dit le debugger ?

  8. #8
    Membre régulier Avatar de transistor49
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 184
    Points : 95
    Points
    95
    Par défaut
    ceci est mon main contenu dans le testeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	//Construction de la classe à tester
    	u_char * packet;
    	strcpy (packet,"af0ae5\0");
        cout << "Construction de l'instance de classe (objet) TrameEthernet" << endl;
        TrameEthernet *trameethernet = new TrameEthernet(packet);
    l'erreur se trouve a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	strcpy (packet,"af0ae5\0");
    l'erreur etant:

    invalid converion from `u_char*' to `char*'

  9. #9
    Membre habitué Avatar de BertrandA
    Inscrit en
    Août 2003
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 170
    Points : 197
    Points
    197
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    u_char * packet; 
    strcpy (packet,"af0ae5\0");
    Pointeur non initialisé, mémoire pas allouée, problème de cast.
    La routine quoi.
    Et surtout les bases du langage C.
    Les orteils servent à trouver les pieds de chaise et les montants de porte quand il fait noir.

  10. #10
    Membre régulier Avatar de transistor49
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 184
    Points : 95
    Points
    95
    Par défaut
    Quelle est donc mon probleme, car il faut savoir, que je ne suis pas seul dans se problème!

  11. #11
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Citation Envoyé par BertrandA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    u_char * packet; 
    strcpy (packet,"af0ae5\0");
    Pointeur non initialisé, mémoire pas allouée, problème de cast.
    La routine quoi.
    Et surtout les bases du langage C.
    transistor49 relis le message à BertrandA... toutes les solutions sont dedans...

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

Discussions similaires

  1. Gcc scanf et erreur de segmentation
    Par titor dans le forum C
    Réponses: 1
    Dernier message: 27/10/2005, 19h27
  2. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  3. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  4. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  5. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25

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