Pb de pointeur [Résolu]

Signaler
Messages postés
61
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
5 août 2008
-
Messages postés
61
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
5 août 2008
-
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

Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
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++
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
t'as un #include a mettre en plus, si tu utilises find
Messages postés
61
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
5 août 2008

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
Messages postés
61
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
5 août 2008

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!