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

  FORUM HardWare.fr
  Programmation
  C

  pointeur et structure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pointeur et structure

n°642610
bonzefou
Posté le 14-02-2004 à 10:23:16  profilanswer
 

bonjour,  
 
le point h (je simplifie bien sur)

Code :
  1. typedef struct
  2. {
  3. int val;
  4. }T1;
  5. typedef struct
  6. {
  7. int val1;
  8. }T2;
  9. typedef struct
  10. {
  11. T1 *pval1:
  12. T2 *pval2;
  13. }T3;
  14. extern T3 *ptr3;


 
dans le point C

Code :
  1. T1 t1;
  2. T2 t2;
  3. T3 t3;
  4. T3 *ptr3=&t3;
  5. ptr3->pval2=&t2; /*LA C LE PB*/
  6. ptr3->pval1=&t1; /*LA C LE PB*/


 
voila ca compile pas a cause des 2 lignes au dessus
type non compatible pour ptr3
 
si je bidouille pour que ca compile, les variables globales ne sont pas modifiées, (creation de variables locales)
 
voila je comprend pas pourquoi j arrive pas a declarer les pointeurs pval1 et pval2

mood
Publicité
Posté le 14-02-2004 à 10:23:16  profilanswer
 

n°642615
gilou
Modérateur
Modzilla
Posté le 14-02-2004 à 10:58:45  profilanswer
 

Rien compris a ton histoire:
 
A part ceci  
T1 *pval1:  qui devrait etre T1 *pval1;  
 
Je vois rien qui cloche a ce code.
J'ai d'ailleurs tenté de le compiler en faisant:  
 

Code :
  1. #include "testpb.h"
  2. int main()
  3. {
  4.   T1 t1;
  5.   T2 t2;
  6.   T3 t3;
  7.   T3 *ptr3=&t3;
  8.   ptr3->pval2=&t2; /*LA C LE PB*/
  9.   ptr3->pval1=&t1; /*LA C LE PB*/
  10. return 0;
  11. }


 
et ca s'est compilé sans pb.
 
Le seul cas ou ca marcherait pas, ce serait si tu avais declare ca en dehors du main (ou du corps d'une fonction, ce qui serait stupide, puisque les lignes ou tu as marqué /*LA C LE PB*/ ne seraient pas des pbs mais des lignes fausses (en effet, comme ce ne sont pas des declarations, ces lignes, elles ne sont pas autorisées ici, relis le K&R [il suffit d'ailleurs de reflechir 2 mn: le point d'entree du programme etant main, comment ces instructions pourraient elles etre executées??]
Auquel cas, si tu tiens absolument a declarer le tout en dehors du main, il aurait fallu proceder ainsi:
 

Code :
  1. #include "testpb.h"
  2.   T1 t1;
  3.   T2 t2;
  4.   T3 t3 = {&t1, &t2};
  5.   T3 *ptr3=&t3;
  6.  
  7. int main()
  8. {
  9. return 0;
  10. }


 
là, on a que des declarations avec initialisation, ce qui est authorisé (parce ces initialisations sont effectuables a la compilation).
 
A+,


Message édité par gilou le 14-02-2004 à 11:20:36

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  pointeur et structure

 

Sujets relatifs
Sondage PointeurStocker une structure de données...
[C#] Différence entre une structure et une classe ?Quelle structure de base adopter ? Gestion d'événements.
[ASP+SQL SERVER] Affichage de la structure d'une BDD (Résolu)pb de declaration de structure .
[PERL] Structure d'arbre orienté objetmanipuler un pointeur de structure ( question de noob dsl )
[C] probleme structure et pointeur[C] Ca prend combien de place un pointeur sur fichier? sur structure?
Plus de sujets relatifs à : pointeur et structure


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