Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2896 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C]Pointeurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C]Pointeurs

n°896110
AsTro
Posté le 11-11-2004 à 17:13:20  profilanswer
 

Salut,
J'ai une structure tache :
typdedef struct Tache
{
   int arg1;
   int arg2;
   int *resultat;
} Tache;
 
En fait je voudrais que le resultat de cette struture tache pointe sur l'argument d'une autre tache.
 
Par exemple:
 
Tache t1;
Tache t2;
 
t2.resultat = &t1.arg1;
 
 
Mais comment modifier t1.arg1 à partir de t2.resultat;
Je voudrais que le resultat de l'addition de arg1 et arg2 de t2 soit ecrit à l'adresse où pointe t2.resultat soit t1.arg1.
 
Comment faire?  

mood
Publicité
Posté le 11-11-2004 à 17:13:20  profilanswer
 

n°896113
Panini
Posté le 11-11-2004 à 17:16:32  profilanswer
 

*t2.resultat = t2.arg1 + t2.arg2;

n°896130
c0wb0y
:d
Posté le 11-11-2004 à 17:44:01  profilanswer
 

t1.arg = t2->resultat = t2.arg1 + t2.arg2

n°896198
Sve@r
Posté le 11-11-2004 à 18:38:13  profilanswer
 

c0wb0y a écrit :

t1.arg = t2->resultat = t2.arg1 + t2.arg2


Pas d'accord ! t2 n'est pas un pointeur donc tu peux pas écrire  
"t2->..."
 
C'est Panini qui a raison
*(t2.resultat) = t2.arg1 + t2.arg2 (je ne sais pas si les parenthèses sont obligatoires, il y a beaucoup de priorités en C et je ne les connais pas toutes)

n°896224
fafounet
Posté le 11-11-2004 à 19:09:08  profilanswer
 

Code :
  1. Tache t1;
  2.     Tache t2;
  3.     t2.arg1 = 2;
  4.     t2.arg2 = 3;
  5.     t2.res = &t1.arg1;
  6.     *t2.res = t2.arg1 + t2.arg2;
  7.     printf("%d\n", t1.arg1);


 
Affichage : 5 :)

n°896265
c0wb0y
:d
Posté le 11-11-2004 à 19:54:48  profilanswer
 

Sve@r a écrit :

Pas d'accord ! t2 n'est pas un pointeur donc tu peux pas écrire  
"t2->..."
 
C'est Panini qui a raison
*(t2.resultat) = t2.arg1 + t2.arg2 (je ne sais pas si les parenthèses sont obligatoires, il y a beaucoup de priorités en C et je ne les connais pas toutes)


 
oui j'ai pas fait gaffe (:
Et oui tes parenthèses sont obligatoire, mais comme c'est moche, on écrit avec la fleche (-> ) plutot que parenthese + *

n°897348
matafan
Posté le 13-11-2004 à 05:00:31  profilanswer
 

Et non les parenthèses ne sont pas obligatoires car  "." a une plus grande précédence que "*", mais c'est une bonne idée d'en mettre pour faciliter la lecture.

n°897364
c0wb0y
:d
Posté le 13-11-2004 à 10:23:26  profilanswer
 

matafan a écrit :

Et non les parenthèses ne sont pas obligatoires car  "." a une plus grande précédence que "*", mais c'est une bonne idée d'en mettre pour faciliter la lecture.


 
on m'avait dit le contraire  :sweat:

n°897415
Sve@r
Posté le 13-11-2004 à 12:13:10  profilanswer
 

c0wb0y a écrit :


Et oui tes parenthèses sont obligatoire, mais comme c'est moche, on écrit avec la fleche (-> ) plutot que parenthese + *
...
on m'avait dit le contraire  :sweat:


Tu fais une confusion entre "pointeur sur structure" et "pointeur sur un membre"
 
1) Si tu as "p" pointeur sur structure et que tu veux récupérer un membre "m" de cette structure, tu dois écrire :
(*p).m
Mais comme c'est moche et fastidieux, on peut remplacer cette écriture par:
p->m
Cette seconde écriture ne change rien. "p" est un pointeur sur une structure et "m" un membre de cette structure
 
2) Maintenant, cas inverse. Tu as "s" une variable de type "struct ..." et "pm" un membre de "s" pointeur sur qq chose, si tu veux récupérer le contenu de "pm" tu dois écrire:
*(s.pm) ou bien *s.pm (puisque matafan dit que les parenthèses ne sont pas obligatoires)
Mais faut faire attention, ici le pointeur c'est "pm" et pas "s" même si on met l'étoile avant "s".
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C]Pointeurs

 

Sujets relatifs
Templates et pointeurs de fonctions membres?Question pointeurs
debug : evolution des pointeursMais...a quoi servent les pointeurs???
[PHP] Question POO / pointeurs [résolu- presque]type d'une difference de pointeurs
conversion adresse de tableau de pointeursPointeurs je comprends plus rien
Pointeurs ?????[C] tableau de pointeurs...
Plus de sujets relatifs à : [C]Pointeurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR