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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Auteur Sujet :

passer un objet a une fuction c est possible ?

n°465716
lorill
Posté le 23-07-2003 à 13:44:34  profilanswer
 

Reprise du message précédent :

chrisbk a écrit :

je la retente


ok, en fait tu te demandes pourquoi ils ont pas pris '.' a la fois dans le cas normal et dans le cas pointeur, j'ai bon ?
 

chrisbk a écrit :


Quel est l'interet de "->" ?  


te rappeler que ta variable est un pointeur

mood
Publicité
Posté le 23-07-2003 à 13:44:34  profilanswer
 

n°465718
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:45:29  profilanswer
 

chrisbk a écrit :

ou, si vous preferez, qu'est ce qui empeche le compilo, lorsqu'il recontre :
 
a.membre = ...;
 
de le remplacer tout seul comme un grand par :
 
a->membre = ...;  
 
?


 
Oh OK je vois ce que tu veux dire.
 
Tout simplement parce que cela empeche le programmmeur de faire ce qu'il veut, je pense. Meme si le a est du type pointeur, il peut avoir envie de jouer avec l'adressage... qui sait :??:
 
Bref, pour moi, c'est une question de laisser tout pouvoir au programmeur, rien d'autre.
 
Et ptet une envie aussi de coller a l'assembleur. A voir.

n°465719
chrisbk
-
Posté le 23-07-2003 à 13:45:37  profilanswer
 

lorill a écrit :


ok, en fait tu te demandes pourquoi ils ont pas pris '.' a la fois dans le cas normal et dans le cas pointeur, j'ai bon ?
 


 
Yes !
 
 
 

Citation :

te rappeler que ta variable est un pointeur


 
:heink:
c'est tout ?
quelle deception
 
 
 
 
 

n°465720
polo021
Posté le 23-07-2003 à 13:45:52  profilanswer
 

chrisbk a écrit :

je la retente
 
 
toto *a;
...
a.membre = tagada; //echec a la compilation
Ca c'est l'adresse

par contre
 
a->membre = tagada; //OK.
Ca c'est le contenu
Maintenant, pkoi "." produit une erreur de syntaxe ? La est ma question. Quel est l'interet de "->" ?  
 
 

n°465721
chrisbk
-
Posté le 23-07-2003 à 13:46:23  profilanswer
 

tetedeiench a écrit :


Tout simplement parce que cela empeche le programmmeur de faire ce qu'il veut, je pense. Meme si le a est du type pointeur, il peut avoir envie de jouer avec l'adressage... qui sait :??:


 
huh ?

n°465722
lorill
Posté le 23-07-2003 à 13:46:33  profilanswer
 

chrisbk a écrit :


c'est tout ?
quelle deception


note: ce n'est que mon avis, sans reflexion. Faut demander a kernighan pour être sur [:ddr555]

n°465723
skeye
Posté le 23-07-2003 à 13:46:54  profilanswer
 

chrisbk a écrit :

ou, si vous preferez, qu'est ce qui empeche le compilo, lorsqu'il recontre :
 
a.membre = ...;
 
de le remplacer tout seul comme un grand par :
 
a->membre = ...;  
 
?


Au hasard, je dirais qu'il ne connait pas l'objet 'a' tout seul, mais plutot qu'il sait qu'il y a un objet de type toto qui s'appelle '*a'...mais grace à '->' il sait que c'est '*a.'?

n°465725
chrisbk
-
Posté le 23-07-2003 à 13:48:13  profilanswer
 

skeye a écrit :


Au hasard, je dirais qu'il ne connait pas l'objet 'a' tout seul, mais plutot qu'il sait qu'il y a un objet de type toto qui s'appelle '*a'...mais grace à '->' il sait que c'est '*a.'?


 
il connait bien evidemment le type de l'objet qu'il manipule et pourrait agir en consequence.... enfin je vois pas trop ce que tu veux dire

n°465726
lorill
Posté le 23-07-2003 à 13:48:47  profilanswer
 

skeye a écrit :


Au hasard, je dirais qu'il ne connait pas l'objet 'a' tout seul, mais plutot qu'il sait qu'il y a un objet de type toto qui s'appelle '*a'...mais grace à '->' il sait que c'est '*a.'?


ca tient pas, un compilo est parfaitement capable de trouver le type de 'a' en fonction de sa déclaration

n°465727
xiluoc
un pc pour les unirs ....
Posté le 23-07-2003 à 13:49:57  profilanswer
 

:pt1cable:

mood
Publicité
Posté le 23-07-2003 à 13:49:57  profilanswer
 

n°465729
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:50:38  profilanswer
 

lorill a écrit :


ca tient pas, un compilo est parfaitement capable de trouver le type de 'a' en fonction de sa déclaration


 
Tout a fait.
 
Je pense personellement que cest du a une envie de laisser plein pouvoirs au programmeur, et  de coller a l'assembleur de plus rpes.

n°465730
polo021
Posté le 23-07-2003 à 13:50:43  profilanswer
 

Citation :

je la retente
 
 
toto *a;
...
a.membre = tagada; //echec a la compilation  
Ca c'est l'adresse
ici on pourrait faire :
int tagada=5;
a.membre= &tagada;  

par contre
 
a->membre = tagada; //OK.
Ca c'est le contenu
Maintenant, pkoi "." produit une erreur de syntaxe ? La est ma question. Quel est l'interet de "->" ?  
 


 
j'ai bon??


Message édité par polo021 le 23-07-2003 à 13:51:44
n°465732
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:52:20  profilanswer
 

attention, quand tu fais
 
x.toto = &a; tu changes l'adresse du pointeur, et la, ca peut etre méchant.
 
Et ca n'a pas vraiment d'intéret en soi.
 
Par contre, le -> accede a la valeur, et ne change pas le pointeur.


Message édité par Tetedeiench le 23-07-2003 à 13:52:50
n°465733
lorill
Posté le 23-07-2003 à 13:52:32  profilanswer
 

polo021 a écrit :


a.membre = tagada; //echec a la compilation  
 
ici on pourrait faire :
int tagada=5;
a.membre= &tagada;  


euh, ca m'etonnerais ca... le a.membre va te jeter violement
(cela dit j'ai jamais essayé)


Message édité par lorill le 23-07-2003 à 13:53:19
n°465734
Tetedeienc​h
Head Of God
Posté le 23-07-2003 à 13:53:08  profilanswer
 

lorill a écrit :


euh, ca m'etonnerais ca... le a.membre va te jeter violement


T'as parfaitement lle droit e changer la valeur d'un int* par un int* .

n°465735
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 13:54:22  profilanswer
 

tetedeiench a écrit :


 
Tout a fait.
 
Je pense personellement que cest du a une envie de laisser plein pouvoirs au programmeur, et  de coller a l'assembleur de plus rpes.


 
Moi je pense que c tout simplement pas les même opérations d'où la présence de deux opérateurs  [:spamafote]


---------------
Le Tyran
n°465736
skeye
Posté le 23-07-2003 à 13:54:37  profilanswer
 

lorill a écrit :


ca tient pas, un compilo est parfaitement capable de trouver le type de 'a' en fonction de sa déclaration


J'ai rien dit, en relisant je me suis dit "putain ke chuis con!"
Mais en fait dans ma tete c'est tjrs comme ca que je le vois:
toto *a  
ca donne :
"la variable '*a' est de type toto."
et pas :
"la variable 'a' est de type adresse de toto."
 
[:skeye]

n°465737
lorill
Posté le 23-07-2003 à 13:54:46  profilanswer
 

tetedeiench a écrit :


T'as parfaitement lle droit e changer la valeur d'un int* par un int* .


mais a.membre n'est pas un int*, même si a->membre est un int.
y'a aucun rapport, a.membre n'existe pas, il va raler parce que tu mets un . sur une variable non pointeur.

n°465739
chrisbk
-
Posté le 23-07-2003 à 13:57:27  profilanswer
 

skeye a écrit :


J'ai rien dit, en relisant je me suis dit "putain ke chuis con!"
Mais en fait dans ma tete c'est tjrs comme ca que je le vois:
toto *a  
ca donne :
"la variable '*a' est de type toto."
et pas :
"la variable 'a' est de type adresse de toto."
 
[:skeye]  


 
oh my god :D
ecrit le toto* a si ca t'aide :D
 
* change le type, pas le nom

n°465740
polo021
Posté le 23-07-2003 à 13:58:29  profilanswer
 

lorill a écrit :


mais a.membre n'est pas un int*, même si a->membre est un int.
y'a aucun rapport, a.membre n'existe pas, il va raler parce que tu mets un . sur une variable non pointeur.


a etait un pointeur sur toto  ;)  

n°465747
skeye
Posté le 23-07-2003 à 14:00:57  profilanswer
 

chrisbk a écrit :


 
oh my god :D
ecrit le toto* a si ca t'aide :D
 
* change le type, pas le nom


Je sais...mais pour mon esprit retors c'était bcp plus simple en réfléchissant comme ca qd j'ai commencé les pointeurs, et c'est resté depuis! :lol:
[edit]
En fait ca m'aidait un peu style préfixage de nom de variable par un 'p' pour les pointeurs, quoi...


Message édité par skeye le 23-07-2003 à 14:01:50
n°465757
lorill
Posté le 23-07-2003 à 14:05:51  profilanswer
 

polo021 a écrit :


a etait un pointeur sur toto  ;)  


prends moi pour un con, c'est plus simple que de lire mon message :o
 
---------------------------------------
cat toto.c

Code :
  1. typedef struct {
  2.   int membre;
  3. } toto;
  4. int main(int argc, char ** argv)
  5. {
  6.   toto t;
  7.   toto *p = &t;
  8.   p->membre = 1;
  9.   printf("%d\n", t.membre);
  10. }


 
gcc toto.c
./a.out

1


 
---------------------------------------
 
cat tata.c

Code :
  1. typedef struct {
  2.   int membre;
  3. } toto;
  4. int main(int argc, char ** argv)
  5. {
  6.   toto t;
  7.   toto *p = &t;
  8.   int cinq = 5;
  9.   p.membre = &cinq;
  10.   printf("%d\n", t.membre);
  11. }


 
gcc tata.c

tata.c: In function `main':
tata.c:11: request for member `membre' in something not a structure or union


Message édité par lorill le 23-07-2003 à 14:15:19
n°465760
polo021
Posté le 23-07-2003 à 14:08:39  profilanswer
 

essaye un coup avec p.membre = &cinq; au lieu de p.membre = &5;
 

n°465763
lorill
Posté le 23-07-2003 à 14:10:00  profilanswer
 

polo021 a écrit :

essaye un coup avec p.membre = &cinq; au lieu de p.membre = &5;


cf edit, je l'ai vu de suite... Mais l'erreur est explicite putain :o

n°465764
chrisbk
-
Posté le 23-07-2003 à 14:10:18  profilanswer
 

polo021 a écrit :

essaye un coup avec p.membre = &cinq; au lieu de p.membre = &5;
 
 


 
sans compilo :

Citation :

tata.c:11: request for member `membre' in something not a structure or union


 
p.membre n'a aucun sens pour un compilo C de toute facon

n°465768
lorill
Posté le 23-07-2003 à 14:11:52  profilanswer
 

chrisbk a écrit :


p.membre n'a aucun sens pour un compilo C de toute facon


ce que je dis depuis une bonne demi heure :jap:

n°465769
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-07-2003 à 14:11:54  profilanswer
 

drapal, topicalacon potentiel detaicted


---------------
J'ai un string dans l'array (Paris Hilton)
n°465771
chrisbk
-
Posté le 23-07-2003 à 14:12:38  profilanswer
 

Harkonnen a écrit :

drapal, topicalacon potentiel detaicted


 
Il a tout lu vous croyez ? :D

n°465772
LetoII
Le dormeur doit se réveiller
Posté le 23-07-2003 à 14:12:40  profilanswer
 

Harkonnen a écrit :

drapal, topicalacon potentiel detaicted


 
Potentiel seulement? :D


---------------
Le Tyran
n°465776
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-07-2003 à 14:13:41  profilanswer
 

chrisbk a écrit :


 
Il a tout lu vous croyez ? :D


vi vi, j'ai tout lu :D
j'attends que ça pète entre lorill, polo et le iench :evil:


---------------
J'ai un string dans l'array (Paris Hilton)
n°465777
lorill
Posté le 23-07-2003 à 14:14:27  profilanswer
 

Harkonnen a écrit :


j'attends que ça pète entre lorill, polo et le iench :evil:


y'a pas de raison, j'ai prouvé mes affirmations, y'a plus rien a dire.

n°465778
skeye
Posté le 23-07-2003 à 14:14:54  profilanswer
 

chrisbk a écrit :


 
Il a tout lu vous croyez ? :D


Pas encore...il se prépare à relever toutes les conneries sorties dans le topic (je suis sur que je suis en tête...quoi que j'ai pas tout lu ce que raconte polo... :whistle: )

n°465786
chrisbk
-
Posté le 23-07-2003 à 14:18:13  profilanswer
 

Harkonnen a écrit :


vi vi, j'ai tout lu :D
j'attends que ça pète entre lorill, polo et le iench :evil:


 
et c quoi ta theorie a ce sujet ? :O

n°465818
polo021
Posté le 23-07-2003 à 14:35:47  profilanswer
 

chrisbk a écrit :


 
sans compilo :

Citation :

tata.c:11: request for member `membre' in something not a structure or union


 
p.membre n'a aucun sens pour un compilo C de toute facon


oui, ca n'a aucun sens pour un compilo car il ne regarde pas le type de ce qu'on veut lui affecter mais logiquement ca a un sens, c'est pour ca que je pensais que c'etait possible.
Mais bon ca ne l'est pas donc voila quoi :sweat:

n°465826
lorill
Posté le 23-07-2003 à 14:39:40  profilanswer
 

polo021 a écrit :

mais logiquement ca a un sens


non.

n°465828
chrisbk
-
Posté le 23-07-2003 à 14:39:59  profilanswer
 

polo021 a écrit :


oui, ca n'a aucun sens pour un compilo car il ne regarde pas le type de ce qu'on veut lui affecter mais logiquement ca a un sens, c'est pour ca que je pensais que c'etait possible.
Mais bon ca ne l'est pas donc voila quoi :sweat:  


 
 
?
 
essaye d'affecter toto a un int et tu va voir si il regarde pas le type de ce que tu veux affecter :O
 

n°465855
polo021
Posté le 23-07-2003 à 14:51:05  profilanswer
 

chrisbk a écrit :


 
 
?
 
essaye d'affecter toto a un int et tu va voir si il regarde pas le type de ce que tu veux affecter :O
 
 


la tu cherches la petite bete, je parlais du cas specifique en question.
le compilo lit p.membre et voit que ca n'a aucun sens donc il jarte sans aller voir ce qu'il y a derriere non?

n°465868
skeye
Posté le 23-07-2003 à 14:58:34  profilanswer
 

polo021 a écrit :


oui, ca n'a aucun sens pour un compilo car il ne regarde pas le type de ce qu'on veut lui affecter mais logiquement ca a un sens, c'est pour ca que je pensais que c'etait possible.
Mais bon ca ne l'est pas donc voila quoi :sweat:  


 

polo021 a écrit :


la tu cherches la petite bete, je parlais du cas specifique en question.
le compilo lit p.membre et voit que ca n'a aucun sens donc il jarte sans aller voir ce qu'il y a derriere non?


 
Faudrait choisir! :pt1cable:  
Je vois pas pkoi ca aurait un sens...le '.' n'est défini que pour une structure, un pointeur n'est pas une structure, donc ca n'a pas de sens. [:skeye]

n°465871
bjone
Insert booze to continue
Posté le 23-07-2003 à 15:02:31  profilanswer
 

chrisbk >> troll en orbite géostationnaire ? (bien que la question sur l'histoire du -> est interressante)
 

n°465874
chrisbk
-
Posté le 23-07-2003 à 15:03:55  profilanswer
 

BJOne a écrit :

chrisbk >> troll en orbite géostationnaire ? (bien que la question sur l'histoire du -> est interressante)
 
 


 
bens si c interessant pourquoi ca serait un troll ? (Si t'as des trucs a dire on s'est deporte sur le trollpic des langages :D)

n°465879
bjone
Insert booze to continue
Posté le 23-07-2003 à 15:07:42  profilanswer
 

nan, mais c limite parti en fight.
 
il est -possible- que le -> soit effectivement venu naturellement avec les pratiques en asm ( mov al,si & mov al,[si] ).

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3

Aller à :
 

Sujets relatifs
Initialisation d'un objet de type TOracleDataSet (Delphi - DOA)[PHP] passer une fonction dans une action d'un form
Objet WebBrowser et imprimante[HTML/JS] Evenement sur zone de texte déclenche un checked possible ??
VB.NET : Objet cache et mise à jourpasser des variables de formulaire d'une frame à une autre
question sur enum et classe [possible ou pas ?]2 styles CSS à la fois, c possible ? comment on fait ?
plusieur outer join, c'est possible????[PHP] méthodologie pour passer des variables d'une page a l'autre
Plus de sujets relatifs à : passer un objet a une fuction c est possible ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)