Structure en C
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Structure en C



  1. #1
    invite16925a82

    Structure en C


    ------

    Bonsoir je débute les structures en C et j'ai une erreur de compilation que je ne comprends pas
    J'ai créé ces structures :

    Code:
    typedef struct
    {
        int jour,mois,annee;
    }Date;
    
    typedef struct
    {
        char nom[50];
        char prenom[50];
        int numero;
        Date date;
    }Etudiant;
    
    typedef struct
    {
        Etudiant classe[100];
    }Classe;
    
    Ce que je veux faire, c'est créer un tableaux d'étudiants à l'aide du type classe.Pourquoi lorsque, j'écris, par exemple, j'ai une erreur de compliation ?
    
    int main()
    {
       Classe classe;
       classe[0].numero=45; //exemple juste pour essayer
       return 0 ;
    }
    L'erreur se trouve sur la ligne ou il y a le commentaire.

    Merci d'avance. J'espère que je me suis fait compris

    -----
    Dernière modification par JPL ; 01/02/2013 à 23h26. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    Jack
    Modérateur

    Re : Structure en C

    C'est pas plus lisible comme çà?

    Code:
    typedef struct
    {
        int jour,mois,annee;
    }Date;
    
    
    typedef struct
    {
        char nom[50];
        char prenom[50];
        int numero;
        Date date;
    }Etudiant;
    
    
    typedef struct
    {
        Etudiant classe[100];
    }Classe;
    
    
    Ce que je veux faire, c'est créer un tableaux d'étudiants à l'aide du type classe.Pourquoi lorsque, j'écris, par exemple, j'ai une erreur de compliation ?
    
    
    int main()
    {
       Classe classe;
       classe[0].numero=45; //exemple juste pour essayer
       return 0 ;
    }
    N'oublie pas la prochaine fois.

    A+

  3. #3
    invite16925a82

    Re : Structure en C

    Merci

    Désolé j'y penserais la prochaine fois

  4. #4
    Jack
    Modérateur

    Re : Structure en C

    Tu ne peux pas écrire
    classe[0]
    puisque classe est une structure.

    Pourquoi mets-tu le tableau dans la structure?
    Au lieu de
    Code:
    typedef struct
    {
        Etudiant classe[100]; 
    }Classe;
    , pourquoi ne pas créer ta classe ainsi:
    Code:
    Etudiant classe[100];
    tout simplement

  5. A voir en vidéo sur Futura
  6. #5
    invite16925a82

    Re : Structure en C

    Merci de la réponse.

    Au départ c'est ce que j'ai fait mais le sujet de l'exercice dit :

    "Définir le type Classe et déclarer une classe dans le main."(Une classe est un tableau d'étudiants)

    Une idée à me donner pour faire cet question ?

    Merci d'avance.

  7. #6
    Jack
    Modérateur

    Re : Structure en C

    Une idée à me donner pour faire cet question ?
    Je viens de le faire.

    A+

  8. #7
    Jack
    Modérateur

    Re : Structure en C

    Ah oui, il faut définir un type classe. Bin tu mets typedef devant:
    Code:
    typedef Etudiant Classe[100];

  9. #8
    invite16925a82

    Re : Structure en C

    Merci !

    Bonne soirée

  10. #9
    invite1c6b0acc

    Re : Structure en C

    Bonjour,
    Je suis tout à fait d'accord avec tout ce qui vient dêtre dit, mais d'un autre côté, la formulation :
    Code:
    typedef struct{
        Etudiant classe[100];
    }Classe;
    est tout à fait valable, et à utiliser si tu voulais ajouter des champs à la structure Classe (le nombre d'élèves, la moyenne, par exemple, ou la liste des profs, ...), ce qui pourrait donner :
    Code:
    typedef struct
    {
        Etudiant classe[100];
        double moyenne;
    }Classe;
    Mais dans ce cas, il aurait fallut écrire
    Code:
    classe.classe[0].numero=45;
    Note aussi que le champ "classe" porte un nom un peu étrange : C'est un tableau d'Etudiant(s). Moi, je l'aurai appelé "etudiant" :
    Code:
    typedef struct{
        Etudiant etudiant[100];
        double moyenne;
    }Classe;
    et :
    Code:
    classe.etudiant[0].numero=45;
    classe.moyenne = 12.3;
    Ça me parait plus clair de parler de classe.etudiant[0] pour désigner le premier étudiant de la liste ...

    A+

  11. #10
    invite16925a82

    Re : Structure en C

    Merci beaucoup Chanur, tu as exactement expliqué le truc que je ne comprenais pas

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/01/2013, 22h07
  2. structure
    Par invite5683c848 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 14/03/2010, 22h52
  3. [Biologie végétale] Structure xyleme
    Par invite9f0e4e7a dans le forum Biologie
    Réponses: 2
    Dernier message: 29/05/2009, 01h08
  4. Structure
    Par invite175ea45b dans le forum Physique
    Réponses: 3
    Dernier message: 10/05/2009, 10h41
  5. Structure immerge
    Par invite5d75af2b dans le forum Technologies
    Réponses: 8
    Dernier message: 27/06/2007, 17h01