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 :

Pointeur de structure de pointeurs.


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut Pointeur de structure de pointeurs.
    J'ai un problème de syntaxe auquel je ne trouve pas de réponse.

    J'ai une structure de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct exemple
    {
    	long* a;
    	long* b;
     
    } EXEMPLE;

    J'aimerais avoir accès à la valeur pointée par le pointeur a.
    La syntaxe suivante semble incorrecte (refusée par le compilateur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    EXEMPLE *p;
     
    p->*a
    Comment dois-je écrire cela?

    Merci d'avance!

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    long l = 42;
    EXEMPLE* p = malloc(sizeof(EXEMPLE));
     
    p->a = &l;
     
    free(p);

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut
    Bonjour, et merci de répondre si vite.

    Je comprends bien le code que vous me proposez, mais je crains qu'il ne réponde à ma question.

    les syntaxes p->&a ou p->*a sont elles correctes? Si non quelle est la syntaxe exacte?

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Désolé pour la réponse expéditive,

    Citation Envoyé par onodi Voir le message
    les syntaxes p->&a ou p->*a sont elles correctes?
    Aucune des deux en C.

    Si non quelle est la syntaxe exacte?
    pointeur_structure->nom_du_membre

    Où '->' est l'opérateur "membre par pointeur".

    Dans l'exemple, on accède au membre 'a' (pointeur de long) via le pointeur 'p' (pointeur vers une structure de type EXEMPLE) via:

    p->a peut être une l-value ou une r-value (respectivement à gauche et droite d'une affectation)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    p->a = x; //on affecte la valeur x au membre 'a'  de la structure pointée par 'p'
     
    x = p->a; // on affecte 'x' avec la valeur de 'a'.
    La syntaxe "p->*a" est une syntaxe particulière au C++ et sert à lier un pointeur à une objet spécifique. Cette syntaxe n'est pas disponible en C.

    La syntaxe "&p->a" est par contre valide: c'est l'adresse du membre 'a'.
    "*p->a" est aussi valide (si 'a' est un pointeur): il s'agit du déréférencement de 'a'.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut
    Merci beaucoup,

    cela répond parfaitement à ma question!
    Je clos le topic avec la mention "résolu".

    Merci encore et bonne soirée!

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

Discussions similaires

  1. Déclaration de structures et pointeurs de structure
    Par Alpha573 dans le forum Débuter
    Réponses: 1
    Dernier message: 22/11/2011, 18h09
  2. Réponses: 7
    Dernier message: 08/04/2006, 12h18
  3. [structure et pointeur] problème d'affichage
    Par kitsune dans le forum C
    Réponses: 17
    Dernier message: 22/03/2006, 22h20
  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