luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
6 nov. 2004 à 16:58
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
6 nov. 2004 à 17:40
Bon je planche deja depuis pas mal de temps sur un bout de code sans trop comprendre où est le problème. Alors j'espère que l'un d'entre vous pourrait me dépanner :)
Voila l'extrait:
point point1(1,1,1); // je déclare un point
point point2(2,2,2);
point point3(2,2,2);
point point4(3,3,3);
// je déclare en suite un tableau de pointeur sur des segments
segment** line = new segment*[3];
line[0]->set(&point1,&point2);
// Fonction membre "set" d'initialisation
cout << line[0]->p1->x << endl; // Il m'affiche bien 1
// p1 est une donnée de la classe
cout << line[1]->p1->x << endl; // il m'affiche bien 2
cout << "segment 0:\n";
cout << line[0]->p1->x << endl;
// et la catastrophe !!! ce n'est plus la meme valeur qu'au début, c'est devenu 2, comme pour le second segment.
La valeur de line[0]->p1->x a été remplacer par line[0]->p2->x
///////////////////////////////////////////////////////////////////////////:
Si ca peut vous aider, voici la fonction "set" de la classe segment:
Merci par avance a ceux qui pourront m'aider a résoudre ce dilemme, puisque sur internet, on me parle d'allocation dynamique avec l'exemple banal des char ...
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 6 nov. 2004 à 17:40
Bon en fait j'ai fini par trouvé en décortiquant tout. J'avais pas réalisé que segment** line = new segment*[3]
Ca ne créer pas les segments, c'est tout bête, mais j'y avais pas pensé. Donc il faut initialiser les objets 1 par 1 apres, cad:
line[0] = new segment(&point1,&point2);