debuthmx Posted June 1, 2003 Share Posted June 1, 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; } Link to comment Share on other sites More sharing options...
Dark26 Posted June 1, 2003 Share Posted June 1, 2003 par la programmation ça fait trop longtemps Link to comment Share on other sites More sharing options...
Neo_13 Posted June 2, 2003 Share Posted June 2, 2003 p est un pointeur.... il peut donc être géré comme un tableau (mais il faudrait un calloc...) Je sais pas.... Link to comment Share on other sites More sharing options...
theocrite Posted June 3, 2003 Share Posted June 3, 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)); Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.