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:

Microsoft C++ exception: std::bad_alloc @ 0x0012ecac.
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.

Voici un exemple de code contenue dans une methode appele de facon iterative:

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
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



Toutes vos suggestions sont les bienvenues...