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 :

Problemes " Structures croisées " et recursives


Sujet :

C

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Problemes " Structures croisées " et recursives
    Dans le cadre d'un projet de fin d'année en C je suis amené à faire ce que j'appelle des structures croisées ... Pas d'explications à rallonge, rien ne vaut un bon exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    typedef struct A
    {
      B * var;
      A * suivant;
    };
     
    typedef struct B
    {
      A * var;
      B * suivant;
    };
    ça me pose pas mal de problèmes ....
    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    struct A;
    struct B;
    typedef struct A_rec
    {
      B * var;
      A_rec * suivant;
    } * A;
     
    typedef struct B
    {
      A * var;
      B * suivant;
    } * A;
    Mais après l'utilisation de A_rec et A, et B_rec et B est ambigue ....
    Pourriez vous m'aider à trouver une méthode miracle à mon problème ?

    D'avance merci .........

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Personnellement, comme je dis toujours, je ne suis pas très doué alors je n'embrique pas les déclarations ...

    J'aurai donc fais ainsi :

    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
     
    typedef struct a * A;
    typedef struct b * B;
     
    struct a 
    { 
      B * var; 
      A * suivant; 
    }; 
     
    struct b 
    { 
      A * var; 
      B * suivant; 
    };
    Le C te permet de créer des typedefs sur des pointeurs sans broncher alors utilise le, ça ne coute rien et ça peut parfois apporter de la visibilité. (je n'aime pas les déclarations multiple structure / typedef mais ce n'est qu'une question de goût)

  3. #3
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    struct B;
    struct A
    {
      struct B * var;
      struct A * suivant;
    };
     
    struct B
    {
      struct A * var;
      struct B * suivant;
    };
    8)

    C'est une version sans typedef. On peut mettre les typedef dans la declaration du struct ou bien les mettre apres les 2 definitions de struct.

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    Ok merci beaucoup ... Vous m'avez bien aidé :D

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

Discussions similaires

  1. [MySQL] Problème de rquête avec Quôte
    Par yom17 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/10/2006, 10h58

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