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,mais pourquoi est t-il aussi m�chant?


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    Mars 2006
    Messages
    113
    D�tails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 113
    Par d�faut Erreur de segmentation,mais pourquoi est t-il aussi m�chant?
    Bonjour � tous,

    voici mon pb, j'obtiens une erreur de segmentation lors de la compilation de mon projet.

    Je vous mets les parties qui posent probl�me:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     pt_ll mes_liaisons=NULL, aux1=new liste_liaisons;
     
      for(int t=0; t<case_tab;t++) {
        cout << tab_villes[t] << endl;
     
        strcpy(aux1->ville_source,"Philippe");
        cout << aux1->ville_source;
     
        aux1->lien = mes_liaisons;
        mes_liaisons=aux1;
     
      }
    Dans le .h, d�finissant une liaison:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef struct liste_liaisons;
    typedef liste_liaisons*pt_ll;
    struct liste_liaisons {
      char *ville_source;
      int energie;
      bool endommage;
      int type;
      char *ville_desti;
      pt_ll lien;
    };

    C'est la ligne:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    strcpy(aux1->ville_source,"Philippe");
    qui pose probl�me... Je ne comprends pas pourquoi...

    Merci de me filer un coup de main !

    Philippe

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par d�faut
    Le strcpy fait tout foirer:
    tout simple devrait marcher.

    Pourquoi?

    J'en sais rien,il suffit d'attendre l'avis des pros!

    EDIT:Ca doit �tre un probl�me d'initialisation.

    EDIT: En effet :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    aux1->ville_source=new(char);
    strcpy(aux1->ville_source,"Philippe");
    marche.

  3. #3
    Membre confirm�
    Inscrit en
    Mars 2006
    Messages
    113
    D�tails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 113
    Par d�faut
    Ouah, mon sauveur !!!!

    Merci, ca marche parfaitement bien !!

    Merci beacoup, franchement !

    Philippe

  4. #4
    Membre �prouv�
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 159
    Par d�faut
    Toujours initialiser un pointeur que l'on declare.

  5. #5
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 297
    Par d�faut
    Bizarre. Il me semblait avoir d�j� r�pondu.
    Citation Envoy� par seriousme
    EDIT: En effet :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    aux1->ville_source=new(char);
    strcpy(aux1->ville_source,"Philippe");
    marche.
    Certainement pas. Cela passe � l'ex�cution uniquement parce que tu dois compiler en mode d�bug. Il faudrait r�server bien plus de caract�res que cela, et sous forme d'un tableau dynamique qui plus est.
    Bref, un truc compiqu� � �crire proprement et � maintenir.
    Les std::string sont tes amies.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur de compilation : mais pourquoi?
    Par bertry dans le forum Langage
    R�ponses: 4
    Dernier message: 29/01/2011, 21h55
  2. R�ponses: 21
    Dernier message: 08/01/2010, 16h15
  3. R�ponses: 1
    Dernier message: 14/10/2009, 12h47
  4. [JSTL] Mais pourquoi est-il si m�chant ?
    Par thierryler dans le forum Taglibs
    R�ponses: 4
    Dernier message: 03/03/2008, 17h19
  5. erreur LOOP attendu , mais pourquoi?
    Par ahage4x4 dans le forum ASP
    R�ponses: 10
    Dernier message: 23/05/2005, 16h22

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