Bonjour a tous!
Je suis confronte a de serieux problemes avec la manipulation des std::vector en c++ avec Visual .Net 2003. J' ai developpe un algorithme qui doit gerer des listes d objets assez complexes j utilise donc des vector pour les stocker.
Jusque la pas trop de probleme mais par la suite j ai tente d integrer mon algorithme a un autre projet que j ai adapte et les methodes communiquent par le biais de std::vector< std::vector<int> > de maniere iterative. Mais mon programme fini par s arreter pour cause de probleme de memoire de ce type:
Y a t-il un probleme connu avec le fait d envoyer d envoyer en parametres des pointeurs sur des std::vector et de retourner des objets de type std::vector par le biais de methodes d'objet ou de methode statique.Microsoft C++ exception: std::bad_alloc @ 0x0012ecac.
Voici un exemple de code contenue dans une methode appele de facon iterative:
Notez qu'il suffit de modifier un bout de code pour que l erreur apparaissent dans une autre methode qui a le meme genre de procede
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 std::vector<int> mvRef; int num4x4Blocks = width/4*height/4; blocks4x4.reserve(num4x4Blocks); mvRef.reserve(2*num4x4Blocks); // // // Insertion des valeurs dans mvRef a l'aide de differentes // methodes // // return mvRef; // Ceci cree une erreur de type memory a la 2 eme // iteration
Toutes vos suggestions sont les bienvenues...
Partager