debuthmx Posté(e) le 1 juin 2003 Partager Posté(e) le 1 juin 2003 Le programme suivant fonctionne alors qu'il ne devrait pas logiquement, car je fait une itteration alors que je ne fait pas d'allocation dynamique de memoire. En fait à la place de p=new Date; j'aurais dû ecrire p= new Date[5]; pour pouvoir ittéré 5 fois. Car avec la premiere forme, le compilateur ne reserve q'un seul emplacement memoire de type Date alors que je lui demande de stoqué 5 objets de ce type, ceci devrait lui posé probleme et il devrait donc me renvoyer une erreur a la compilation. #include<iostream.h> #include<conio.h> struct Date {int jour,mois,annee; }; int main() { Date *p; p=new Date; /* normalement on aurait dû mettre: p= new Date[5]; */ for(int i=0;i<5;i++) { cout<<"jour :";cin>>p.jour;cout<<endl; cout<<"mois :";cin>>p.mois;cout<<endl; cout<<"année :";cin>>p.annee;cout<<endl; } for(int i=0;i<5;i++) { cout<<"jour : "<<p.jour; cout<<" mois :"<<p.mois; cout<<" année :"<<p.annee; cout<<endl; } getch(); return 0; } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dark26 Posté(e) le 1 juin 2003 Partager Posté(e) le 1 juin 2003 par la programmation ça fait trop longtemps Lien vers le commentaire Partager sur d’autres sites More sharing options...
Neo_13 Posté(e) le 2 juin 2003 Partager Posté(e) le 2 juin 2003 p est un pointeur.... il peut donc être géré comme un tableau (mais il faudrait un calloc...) Je sais pas.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 3 juin 2003 Partager Posté(e) le 3 juin 2003 p est un pointeur.... il peut donc être géré comme un tableau (mais il faudrait un calloc...)Je sais pas.... Si new a la même fonction qu'en java, ca devrait marcher. Mais c'est pas très beau. Calloc est une solution, mais mieux vaut utiliser malloc qui réserve un nombre d'octect, c'est tellement plus pratique. p=malloc(5*sizeof(Date)); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.