Bonjour � tous,

j'ai un m�mory leak dont ne parviens pas � me d�barrasser:
Detected memory leaks!
Dumping objects ->
{16050} client block at 0x013DF5E0, subtype c0, 16 bytes long.
First-chance exception at 0x7c809eec in TestIndex_d.exe: 0xC0000005: Access violation reading location 0x0135201c.
an invalid object at $013DF5E0, 16 bytes long
Je n'arrive pas � le localiser car le #d'allocation (ici 16050) n'est jamais le m�me d'une ex�cution � l'autre.
Le plus �nervant, c'est que je pense �tre parvenu � trouver le bout de code qui g�n�re cette fuite, car si j'enl�ve ce bout de code, je n'ai plus de fuite. Mais peut-�tre est-ce "l'arbre qui cache la for�t"? Car ce bout de code est simple:
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
 
MaMethode()
{
switch:
[...]
case 1:
      ObjetA *a;
 
      while ( (a= m_maFIFO.Get()) )
      {
            ObjetB *b= (ObjetB*) a->GetB();
            // ici, un appel de fonction qui utilise les membres de b (uniquement des int => pas de buffer, ni char*, ni pointeur de façon générale):
            f(b->membre1, b->membre2);
 
            SAFE_DELETE(a);
      }
break;
[...]
}
Si je rajoute SAFE_DELETE(b) avant SAFE_DELETE(a), �a plante.
Je ne comprends pas trop ce qu'il se passe ici. Peut-�tre y a-t-il un rapport avec le switch?