pb vector de structure contenant des tableaux [STL] - C++ - Programmation
Marsh Posté le 19-05-2004 à 16:45:37
oh du C !
entre ta notation hongroise, tes typedef C, ta notation à la con, tes identifiants, j'ai rien bité du tout ... alors t'étonnes pas de te perdre. t'as le droit à un ruban "code immaintenable"
y a rien de bourrin à faire des conneries ... vérifie tes allocations et sors ton debugger
Marsh Posté le 20-05-2004 à 17:38:47
Plusieurs choses :
En C++, les structures sont implicitement des types il est donc inutile d'utiliser typedef. N'utilises pas le mot clé struct, utilise plutot class et utilise la forme canonique pour les créer.
Il n'y a pas tout le code dans tes exemples, on ne peut pas vraiment t'aider ici. Cependant, il y a peut-être un problème du au manque de constructeur de copie dans tes classes.
Autre chose : La méthode vector::reserve ne fait que préallouer la mémoire. Pour effectivement utiliser cette mémoire, il faut quand même appeler la fonction push_back pour utiliser ces emplacements réservés.
Une dernière chose, évites les mélanges de francais et d'anglais... c'est une horreur ton code (et pas que pour ca).
--
Jay
{Epitech.}
http://msdn.labtech.epitech.net/blogs
Marsh Posté le 21-05-2004 à 22:31:36
C'était bien des probs de recopie qui faisaient foirer (en plus de moi donc). J'ai tout viré pour des classes avec des noms compréhensibles et lisibles.
J'vous remercie tous les deux des conseils, c'est vrai que c'est pas bô.
Marsh Posté le 21-05-2004 à 22:46:37
oué, vite fais. Je vais me pendre d'abord .
Nan plus sérieusement, je vais essayer de manger un peu plus de doc et de code de plug in, et surtout arrêter de coder comme un porc a la va vite sans trop penser et pis plus savoir d'où ça vient (le debugger de devcpp m'indiquais pas grand chose puisqu'il ne s'arrêtait pas là où ça plantait mais continuais gentillement jusqu'a arriver à l'éxécution du programme, donc j'voyais pas trop ce qui se passait vu que ça plantait plus en mode debug).
Et toi ton exporter se bonifie ?
Marsh Posté le 21-05-2004 à 23:11:00
non je suis sur des pitis shaders à la con (j'essayes de faire une atmosphère à mes boules ).
Marsh Posté le 19-05-2004 à 15:47:33
Bonjour tous le monde,
Voilà, j'ai voulu testé la STL et comme je suis une brèle bah j'arrive po à résoudre un truc. J'ai des vectors de structures.
Enoncé
Les structures sont du type suivant :
Ces structure sont ensuite utilisées dans des tableaux alloués dynamiquement :
Par ailleurs, j'ai des vector de structure :
Avec tMaterial :
Donc ça fait 2 vectors qui trainent, vector<tFace> et vector <tMaterial>
Deux vectors contenant des tableau[3] et pis un peu n'imp" (un objet CVector).
Pour remplir les vector, je la joue peut être bourrin, je fais comme ça :
le problème
Le problème c'est que quand je remplit certaines choses dans les tableaux alloués dynamiquement, bah ça fait planter le tout.
J'ai 3 tablaux alloués dynalmiquement, j'alloue les 3 de la taille que je veux et je remplit les 2 1er, ça passe lors de toute les séries de push_back() que je fais ensuite sur les vector.
Je rempli mon 3eme tableau alloué dynamiquement (avec des structures du type tVertice, c a dire juste un tab de 3 float) et là plus moyen de faire tous les push_back() d'un des deux vectors ; celui contenant des faces (et lui même contenu dans une structure tMaterial qui est elle même vouée à être contenue dans un vector.
Et là j'arrive pas a enchainer 2 push_back() pour le vector contenant les faces pour un material donné. A part si je fais un reserve de N, alors je pourrais rentré N faces.
Donc je sais pas trop d'où ça vient, si c'est du fait que les structures contiennent des tab[], et que de ce fait y'a des recopie de pointeurs et lors d'un redimensionnement du vector bah paf, ça se fait écraser et puis plantage.
Donc si quelqu'un a une idée du prob (outre le fait qu'il faudrait que j'arrête de programmer), je suis tout ouïe.
Merci.
ps : chuis sous devcpp 4.9.8.9