C ++ - Test de fuite de mémoire avec _CrtDumpMemoryLeaks () - Ne pas afficher les numéros de ligne

Je suis en train de travailler sur un jeu avec la SDL dans Visual Studio 2010. Je suis tombé sur le _CrtDumpMemoryLeaks() macro et j'ai pensé lui donner un aller. Invoquant _CrtDumpMemoryLeaks() ne imprimer des fuites de mémoire dans la fenêtre de sortie, mais il n'indique pas où il arrive.

J'ai lu l'article de MSDN à Détection Fuite De Mémoire Permettant et il explique que si j'définir _CRTDBG_MAP_ALLOC il devrait sortir le numéro de ligne de la fausse déclaration. Cela ne se produit pas dans mon cas. (J'ai été en mesure de le faire fonctionner, si j'utilise la fonction malloc() directement (et non par l'utilisation de 'nouveau').

Le code:

#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int *var = new int(5);

    _CrtDumpMemoryLeaks();

    return 0;
}

Le résultat est le suivant:

Detected memory leaks!
Dumping objects ->
{58} normal block at 0x007D1510, 4 bytes long.
 Data: <    > 05 00 00 00 
Object dump complete.

Si _CrtDumpMemoryLeaks() est incapable de sortie des numéros de ligne lors de l'attribution de l'aide "nouveau" puis des suggestions pour d'autres façons d'obtenir un comportement similaire est appréciée.

source d'informationauteur John