Heap di debug da C++

Le informazioni contenute in questo argomento sono valide per:

Edizione

Visual Basic

C#

F#

C++

Web Developer

Express

Argomento non applicabile Argomento non applicabile Argomento non applicabile

Solo nativo

Argomento non applicabile

Pro, Premium e Ultimate

Argomento non applicabile Argomento non applicabile Argomento non applicabile

Solo nativo

Argomento non applicabile

In C++ è possibile chiamare la versione di debug dell'operatore new in modo diretto oppure creare macro che sostituiscano l'operatore new nella modalità di debug, come illustrato nell'esempio che segue:

Sostituzione dell'operatore new

/* MyDbgNew.h
 Defines global operator new to allocate from
 client blocks
*/

#ifdef _DEBUG
   #define DEBUG_CLIENTBLOCK   new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
   #define DEBUG_CLIENTBLOCK
#endif // _DEBUG


/* MyApp.cpp
        Use a default workspace for a Console Application to
 *      build a Debug version of this code
*/

#include "crtdbg.h"
#include "mydbgnew.h"

#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif

int main( )   {
    char *p1;
    p1 =  new char[40];
    _CrtMemDumpAllObjectsSince( NULL );
}

La versione di debug dell'operatore delete può essere utilizzata con tutti i tipi di blocco e non è necessario apportare alcuna modifica al programma quando si compila una versione di rilascio.

Vedere anche

Altre risorse

Heap di debug CRT