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 :

Malloc, pointeur et structure


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Malloc, pointeur et structure
    Bonjour, j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct noeudTab *PNoeudTab;
    typedef struct noeudTab{
    	char lettre;
    	int fin_de_mot;
    	PNoeudTab fils[26];
    };

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PNoeudTab* creer_noeud(char letter){
     
    PNoeudTab * Monpointeur;
     
    Monpointeur=malloc(sizeof(struct noeudTab));
    if (Monpointeur==NULL){fprintf(stderr,"pS :: Erreur d'allocation de memoire");exit(1);}
     
    Monpointeur->lettre=letter;
    Monpointeur->fin_de_mot=0;
    return Monpointeur;
     
    }
    J'ai l'erreur suivante :
    request for member 'lettre' in something not a structure or union
    Mon but est de créer une structure noeudTab en lui réservant de la mémoire et de retourner un pointeur vers cette structure mais je ne comprends pas mon erreur.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Ca t'apprendra à faire un typedef pour cacher un pointeur. Du coup tu ne sais plus qu'edt ce qui est pointeur, structure, et donc tu te trompes pour accéder aux champs. Si j'étais toi : Vire le premier typedef et reprend ton code. Ca ira bien mieux.

    Si tu veux comprendre l'erreur de ton code, il faut que tu comprennes le type de ta variable et de ce que tu essayes de mettre dedans. Ici, souhaites-tu vraiment faire un pointeur survun typedef qui est déjà un pointeur ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Les 2 typedef me sont imposés. L'idée c'est de créer une structure noeudtab qui contiendra un tableau de pointeur pouvant pointer vers d'autres structures noeudtab.

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Si tu veux comprendre l'erreur de ton code, il faut que tu comprennes le type de ta variable et de ce que tu essayes de mettre dedans. Ici, souhaites-tu vraiment faire un pointeur survun typedef qui est déjà un pointeur ?
    Les PNoeudTab sont des pointeurs, les deux * dans la fonction creer_noeud sont donc à ôter sinon tu as un pointeur de pointeur.

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

Discussions similaires

  1. Réponses: 60
    Dernier message: 13/02/2007, 19h53
  2. [C#]Pointeur vers structure
    Par torNAdE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/05/2006, 19h43
  3. Réponses: 7
    Dernier message: 08/04/2006, 12h18
  4. Pointeurs et structures...
    Par vinzzzz dans le forum C
    Réponses: 13
    Dernier message: 18/01/2006, 11h37
  5. probleme avec pointeurs de structures
    Par remi77 dans le forum C
    Réponses: 2
    Dernier message: 20/10/2003, 13h19

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