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 :

Structures imbriquées


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut Structures imbriquées
    Bonjour à tous,

    Dans un TP, le prof nous demande de créer les structures suivantes :

    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
    20
    21
    22
    23
    typedef struct Liste
    {
        Noeud *tete;
        int taille;
    }Liste;
    
    typedef struct tache
    {
    	char ID[MAX_NOM+1]; //Identifiant (nom) unique de la tâche
    	int duree; //Durée de la tâche (en période processeur)
    	int date_plus_tot; //Date au plus tôt de la tâche
    	int marque; //0, si le sommet n’est pas marqué ; 1, sinon.
    	int disponible; //une tâche est disponible si tous ses prédécesseur sont marqués, 0=non disponible, 1=disponible
    	Liste predecesseurs; //liste des prédécesseurs
    	Liste successeurs; //liste des successeurs
    }tache;
    
    typedef struct Noeud
    {
        tache *ptache;
        Noeud *suivant;
    }Noeud;
    Le probleme est que quelque soit l'ordre ou ces structures sont déclarées, à la compilation j'ai un problème car il ne connait pas la structure qui n'est pas encore déclaré et qui est cité à l'intérieur de la structure

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Tu peux faire :
    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
    typedef struct Noeud  Noeud;
     
    typedef struct Liste
    {
    ....
    }Liste;
     
    typedef struct tache
    {
    ....
    }tache;
     
    struct Noeud
    {
        tache *ptache;
        Noeud *suivant;
    };

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Sobuga Voir le message
    Le probleme est que quelque soit l'ordre ou ces structures sont déclarées, à la compilation j'ai un problème car il ne connait pas la structure qui n'est pas encore déclaré et qui est cité à l'intérieur de la structure
    Première chose à faire, ne pas abuser des typedef...
    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
    20
    21
    22
    23
    24
    25
    26
     
    #define MAX_NOM 32
     
    struct Liste
    {
       struct Noeud *tete;
       int taille;
    };
     
    struct tache
    {
       char ID[MAX_NOM + 1];        /* Identifiant (nom) unique de la tâche */
       int duree;                   /* Durée de la tâche (en période processeur) */
       int date_plus_tot;           /* Date au plus tôt de la tâche */
       int marque;                  /* 0, si le sommet n’est pas marqué ; 1, sinon. */
       int disponible;              /* une tâche est disponible si tous ses prédécesseur sont marqués, 0=non disponible, 1=disponible */
       struct Liste predecesseurs;  /* liste des prédécesseurs */
       struct Liste successeurs;    /* liste des successeurs */
    };
     
    struct Noeud
    {
       struct tache *ptache;
       struct Noeud *suivant;
    }
    Noeud;

Discussions similaires

  1. Lecture de structures imbriquées
    Par StitchP dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/04/2007, 21h05
  2. Réponses: 2
    Dernier message: 21/03/2007, 10h55
  3. structure imbriquée malloc problème
    Par tuxout dans le forum C
    Réponses: 3
    Dernier message: 26/02/2007, 06h49
  4. Malloc / structures imbriquées
    Par Lolita59 dans le forum C
    Réponses: 14
    Dernier message: 11/05/2006, 15h43
  5. Réponses: 3
    Dernier message: 20/11/2005, 20h04

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