Aller au contenu

pointeur sur structure ?????


Messages recommandés

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...