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 :

Structure pour liste chaînée


Sujet :

C

  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Par défaut Structure pour liste chaînée
    Bonjour,

    Est-ce que j'ai le droit de remplacer "typeDonnee val" par une variable de type structure ci dessous ? :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef int typeDonnee;
     
     
    typedef struct elt {
    	typeDonnee val;        
    	struct elt *suivant;   
    } typeElt;

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Oui. Tu peux même faire typedef struct maStructure typeDonnee;Par contre, la structure doit être définie, pas seulement déclarée, sinon tu auras une erreur "type incomplet".
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre très actif
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2014
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Novembre 2014
    Messages : 367
    Par défaut
    Mais le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     typedef struct maStructure typeDonnee
    ^doit être tapé après que j'aie défini ma structure n'est-ce pas ? Au plan visuel j'aurai d'abord ma structure et ensuite la définition du typedef.

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Pour qu'un identifieur (nom de type, de variable, ou de fonction) soit utilisable quelque part, il doit être défini avant.

    C'est la raison pour laquelle les fichiers d'en-têtes existent.

    Donc, tu va devoir écrire

    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
    typedef struct maStructure typeDonnee
     
    typedef struct elt {
    	typeDonnee val;        
    	struct elt *suivant;   
    } typeElt;
     
    int taille_elt(typeElt *e);
     
    struct maStructure{};
     
    int taille_elt(typeElt *e) {
        int n = 0;
        while (e!=0) {
            ++n;
            e = e->suivant;
        }
    }
    C'est à dire:
    cher compilateur,
    J'appellerai le type struct maStructure par le nom typeDonnee.
    J'appellerai le type struct elt, défini comme un type de structure contenant un typeDonnee nommé val et un pointeur vers une structure elt nommé suivant, par le nom typeElt.
    Soit taille_elt une fonction retournant un int et prenant un argument e qui est un pointeur vers un typeEltSoit [c]maStructure[c] un type de structure vide;

    Soit taille_elt une fonction retournant un int et prenant un argument e qui est un pointeur vers un typeElt, défini par ...
    PS: je crois que je vais finir par écrire mon compilateur C(++) vers français.

Discussions similaires

  1. [TP] Tri rapide pour liste simplement chaînée
    Par druzy dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 25/11/2007, 15h52
  2. aide pour structure et liste chainée
    Par monsieur77 dans le forum C
    Réponses: 8
    Dernier message: 20/11/2007, 17h25
  3. Réponses: 3
    Dernier message: 16/10/2007, 13h50
  4. Liste chaînée et structure
    Par dest dans le forum C
    Réponses: 5
    Dernier message: 13/07/2007, 16h53
  5. Choix d'une structure pour une liste de tableau d'ansistring
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/05/2007, 07h36

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