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 :

Pointeur et accès structure


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 93
    Par défaut Pointeur et accès structure
    Bonjour voila j'ai un petit problème... J'ai deux structures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef struct TMaillon Maillon;
     
    struct TMaillon {
       void *motchaine; /* mot lu et stocke dans la liste chaînée */
       LC *ptrLigneColonne; /* ponteur sur la structure LC */
       Maillon *suivant; /* adresse du prochain maillon de la liste chaînée */
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /* la structure TLC */
    typedef struct TLC LC;
     
    struct TLC {
        int Ligne, Colonne; /* ligne et colonne d'un mot */
        LC *suivant; /* adresse du prochain maillon de la liste chaînée LC */
    };
    La première structure possède un pointeur permettant d'acceder aux données de la deuxième.
    Cependant dès que je tente de faire une lecture sur la structure LC par l'intermediaire du pointeur ptrLigneColonne, mon programme s'arrete sur le message d'erreur : "erreur de segmentation".

    sachant que je tente d'accéder par ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaChaine_move->ptrLigneColonne->Ligne
    et que la structure LC se remplie bien...

    Merci pour vos conseils.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    Question bête : tu initialises MaChaine_move->ptrLigneColonne ?

    Et pourquoi un void* ? si c'est une chaîne de caractères, pourquoi ne pas utiliser un char* ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 93
    Par défaut
    C'est pour un projet scolaire...ils veulent appliquer le principe de généricité donc je suis obligé de mettre un void*
    Arf en effet j'ai testé la validité de MaChaine_move->ptrLigneColonne et il n'est pas valide...mais je vois pas à quoi l'initialiser

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    comment initialises-tu MaChaine_move ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 93
    Par défaut
    MaChaine_move me permet juste de parcourir ma liste chaînée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(MaChaine_move=MaChaine; MaChaine_move!=NULL; MaChaine_move=MaChaine_move->suivant)
    {
       printf("%s ",MaChaine_move->motchaine);
       if(MaChaine_move->ptrLigneColonne) printf("huhu"); //test validité pointeur 
    }

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    dans ce cas, c'est la création de ta liste chaînée qui est foireuse
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

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

Discussions similaires

  1. Renvoyer un pointeur de type structure
    Par bluecurve dans le forum C
    Réponses: 2
    Dernier message: 18/05/2007, 20h29
  2. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  3. Réponses: 2
    Dernier message: 26/11/2006, 10h51
  4. pointeur vers une structure
    Par Xyrroa dans le forum C
    Réponses: 14
    Dernier message: 12/04/2006, 13h13
  5. [GCC] Tableau de pointeurs pour accès multiples en asm
    Par Flo. dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 12/12/2005, 08h47

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