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 sur structure


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    Cycles en Informatique
    Inscrit en
    Juin 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cycles en Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2007
    Messages : 67
    Par défaut Pointeur sur structure
    Bonsoir à tous
    J'aimerai svp leve un doute sur les pointeurs et sur les element sur lesquels ils pointent.
    Est ce qu'en modifiant une variable d'un element(structure) via un pointeur sur l'element cette modification se repercutera t-il sur tous dans tous les elements(autres structures) contenant cet element(structure)?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut

    Je pense qu'un exemple serait plus parlant. Je n'ai pas du tout compris ta question.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 60
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef struct{
    int element;
    }structure;
     
    void fonction(structure stc)
    {
    stc.element=0;
    }
    change rien dans la valeur de element de la structure passé en argument.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void fonction2(structure * stc)
    {
    stc->element=0;  /*equivalent a (*stc).element=0*/ 
    }
    La valeur de element de la structure sur laquelle le pointeur passé en argument pointe est 0 après l'appel.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    absolumen exact.

    Mais ça n'est pas à cause du pointeur sur l'élément, mais sur la structure.

    En C le passage des arguments se fait pas copie. Dans ton premier exemple, lorsque le programme est exécuté, quand on rentre dans la fonction, on a une copie de la structure. Donc si on modifie un élément de cette copie, ça ne touche pas l'original.

    Dans le second cas, on travaille avec une copie du pointeur. Mais comme c'est une adresse, l'adresse copiée est bien celle de la structure orignale. Donc un offset à partir de cette copie est exactement la même chose que l'offset à partir de l'original, et donc affecter une valeur à cet offset modifie la structure originale.

    Par contre, dans ton premier post, tu mentionnais

    Est ce qu'en modifiant une variable d'un element(structure) via un pointeur sur l'element cette modification se repercutera t-il sur tous dans tous les elements(autres structures) contenant cet element(structure)?
    Si par là tu entendais que si tu as

    une structure struct1 contenant element
    une structure struct2 contenant element

    Une fonction modifiant element dans struct1

    Il est bien évident que element dans struct2 n'est pas modifié...

Discussions similaires

  1. pointeur sur structures
    Par Seimaya dans le forum Débuter
    Réponses: 33
    Dernier message: 26/08/2007, 18h13
  2. Réponses: 6
    Dernier message: 07/07/2007, 18h12
  3. pointeur sur structure
    Par julien.63 dans le forum C
    Réponses: 7
    Dernier message: 04/06/2007, 17h50
  4. problème pointeur sur structure
    Par lejohn dans le forum C
    Réponses: 9
    Dernier message: 01/05/2007, 13h17
  5. Réponses: 2
    Dernier message: 21/03/2007, 10h55

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