Pb de pointeur

Résolu
vladisback Messages postés 61 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 5 août 2008 - 21 juin 2005 à 16:12
vladisback Messages postés 61 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 5 août 2008 - 21 juin 2005 à 20:01
Bonjour, je suis en train de réaliser une simulation de tissu en temps réel et

j'ai besoin de faire une liste de point qui augmente chaque fois que l'on en ajoute un.

j'ai donc créer un pointeur et ajoute mes point de la facon suivante:



void Cloth::AddPt(Vect3 Pt)

{



ClPoint* tempPts=new ClPoint[NPts+1];

for (int i=0;i<NPts;i++)

tempPts[i]=*(Pts+i);



tempPts[NPolyB].Pos=Pt;

tempPts[NPolyB].NLien=0;

tempPts[NPolyB].IdPtLien=0;



delete[] Pts;

Pts=new ClPoint[NPts+1];

for (int i=0;i<NPts+1;i++)

Pts[i]=*(tempPts+i);

NPts++;

}





Sauf que ça marche pas....

je ne suis pas du tout sur de la facon dont je le fais, donc si vous voyez l'erreur

ou si vous avez un exemple qui le fait simplement: merci de m'aidez!

4 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
21 juin 2005 à 16:38
salut,

si tu fais du C++, le plus simple est d'utiliser le type list<>
de la libraire standard (#include <list>). un exemple:



list liste_d_entiers;

// insertion d'elements ds la liste:

liste_d_entiers.push_back(5);

liste_d_entiers.push_back(2);

liste_d_entiers.push_back(8);

liste_d_entiers.push_back(9);



parcours de la liste:

list::iterator it;

for (it = liste_d_entiers.begin(); it != liste_d_entiers.end(); ++it)

{

cout << "valeur " << *it << endl;

}



// ya t'il 5 dans la liste?

if (find(liste_d_entiers.begin(), liste_d_entiers.end(), 5) != liste_d_entiers.end())

cout << "5 a ete trouve !!" << endl;

else

cout << "5 non trouve" << endl;



tu peux avoir un list<ClPoint> si tu veux une liste d'objets de cette classe.



Si tu veux continuer avec ce que tu fais, il faut que tu postes la déclaration de ta classe ClPoint et celle de ta classe Cloth.



a++
3
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
21 juin 2005 à 16:39
t'as un #include a mettre en plus, si tu utilises find
0
vladisback Messages postés 61 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 5 août 2008
21 juin 2005 à 19:28
Re, j'vais essayé les list ça a l'air pas mal, mais
je post un code plus simple de ma fonction parsque je pense que mettre
les mes classe fouttrait du bordel pour rien et c identique avec des
variable de base:

void AddChiffre(float ChiffreAAjouter)

{



float* ListChiffreTemporaire=new float[NChiffre+1];

for (int i=0;i<NChiffre;i++)

ListChiffreTemporaire[i]=*(MaListDeChiffre+i);



ListChiffreTemporaire[NChiffre]=ChiffreAAjouter;





delete[] MaListDeChiffre;

MaListDeChiffre=new float[NChiffre+1];

for (int i=0;i<NChiffre+1;i++)

MaListDeChiffre[i]=*(ListChiffreTemporaire+i);

NChiffre++;

}



voila j'espere que c'est plus compréhensible et que vous pourrez m'aidez. merci
0
vladisback Messages postés 61 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 5 août 2008
21 juin 2005 à 20:01
j'ai trouvé le probleme, il ne vient pas de moi: apparament c'est le
compilateur (Visual Studio .NET 2003) qui faisait des conneries, il ne
m'affiché aucune erreur a la compilation mais il buggé entre mes 2 for
parce qu'il utilise tout les 2 la variable i qu'il declare chacun et
donc il faisait un peu n'importe quoi; j'ai donc juste mis j au lieu de
i pour mon second for et tout marche impecc.

merci pour les list COSMOBOB je regarderai ça a l'occasion parce que ça a l'air intéressant et surtout plus simple.

Encore merci et a plus!
0
Rejoignez-nous