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 :
- #include "testpb.h"
- int main()
- {
- T1 t1;
- T2 t2;
- T3 t3;
- T3 *ptr3=&t3;
- ptr3->pval2=&t2; /*LA C LE PB*/
- ptr3->pval1=&t1; /*LA C LE PB*/
- return 0;
- }
|
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 :
- #include "testpb.h"
- T1 t1;
- T2 t2;
- T3 t3 = {&t1, &t2};
- T3 *ptr3=&t3;
-
- int main()
- {
- return 0;
- }
|
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é! --