Bonjour à toutes et tous,

Je me tourne vers vous car j'ai un problème que je n'arrive pas à résoudre...

Mon code ressemble à ceci :
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
16
17
18
19
20
21
22
23
24
25
26
27
 
class A
{
public:
	struct B
	{
		int i;
		int j;
		int k;
	};
 
	struct C
	{
		/*
		des tas de choses
		*/
		vector<B> vecB;
	};
 
	/*
	des tas de choses
	*/
 
protected:
	map<string, C> mapC;
 
};
Je ne vous mets pas tout car le problème n'apparait qu'à la fermeture de l'application, la compilation et l’exécution fonctionnent sans problème.

Avec le débogueur j'ai trouvé que l'erreur était dans c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\ext\new_allocator.h:110,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
      }
 
      // __p is not permitted to be a null pointer.
      void
      deallocate(pointer __p, size_type)
      { ::operator delete(__p); }    //ligne 110
De plus, le débogueur m'indique que cela se produit sur un objet de type struct B.

Il me semble donc comprendre qu'il y a problème de destruction soit avec map<string, C> soit avec vector<B>Si vous avez une idée ou une piste, je suis preneur, d'avance merci.