Jump to content

pointeur sur structure ?????


Recommended Posts

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

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...