differenze

Alloca un blocco di memoria nell'heap con spazio aggiuntivo per un'intestazione di debug e sovrascrivono i buffer (versione di debug solo).

void *_malloc_dbg(
   size_t size,
   int blockType,
   const char *filename,
   int linenumber 
);

Parametri

  • size
    Dimensione richiesta di blocco di memoria (in byte).

  • blockType
    Tipo richiesto del blocco di memoria: _CLIENT_BLOCK o _NORMAL_BLOCK.

  • filename
    Puntatore al nome del file di origine che ha richiesto l'operazione o NULL di allocazione.

  • linenumber
    Numero di riga nel file di origine in cui l'operazione di allocazione è richiesta o NULL.

filename e linenumber i parametri sono disponibili solo quando _malloc_dbg è stato chiamato in modo esplicito o _CRTDBG_MAP_ALLOC la costante del preprocessore è stata definita.

Valore restituito

Al termine, questa funzione restituisce un puntatore all'utente del blocco di memoria allocata, chiama la nuova funzione di gestione, o restituisce NULL.Per una descrizione completa del comportamento di ritorno, vedere la sezione relativa alle osservazioni.Per ulteriori informazioni su come la nuova funzione di gestione viene utilizzata, vedere report funzione.

Note

_malloc_dbg è una versione di debug di report funzione.quando _DEBUG non è definita, ogni chiamata a _malloc_dbg è stato ridotto a una chiamata a malloc.entrambi malloc e _malloc_dbg allocare un blocco di memoria nell'heap di base, ma _malloc_dbg offre numerose funzionalità di debug: buffer presenti da entrambi i lati della parte dell'utente di blocco da verifica delle perdite, un parametro di tipo blocco per tenere traccia dei tipi specifici di allocazione e filenameolinenumber informazioni per determinare l'origine delle richieste di allocazione.

_malloc_dbg alloca il blocco di memoria con leggermente più spazio rispetto richiesto size.Lo spazio aggiuntivo viene utilizzato dall'amministratore dell'heap di debug per collegare i blocchi di memoria di debug e per fornire l'applicazione con informazioni di intestazione di debug e sovrascrivere i buffer.Quando il blocco è allocato, la parte del blocco viene riempita con valore 0xCD e ciascuno dei buffer di sovrascrivere viene inserito il valore 0xFD.

_malloc_dbg set errno in ENOMEM se allocazione di memoria non riesce o se la quantità di memoria necessaria (sovraccarico inclusi accennato in precedenza) supera _HEAP_MAXREQ.Per informazioni su questo e altri codici di errore, vedere errno, _doserrno, _sys_errlist e _sys_nerr.

Per informazioni su come i blocchi di memoria vengono allocati, inizializzati e vengono gestiti nella versione di debug dell'heap di base, vedere Gestione della memoria e heap di debug.

Per informazioni sui tipi di blocchi di allocazione e come vengono utilizzati, vedere Tipi di blocchi sull'heap di debug.

Requisiti

routine

Intestazione di associazione

_malloc_dbg

<crtdbg.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

Librerie

versioni di debug di Librerie di runtime del linguaggio C solo.

Esempio

Per un esempio di utilizzo _malloc_dbg, vedere crt_dbg1.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.

Vedere anche

Riferimenti

Procedura di debug

malloc

_calloc_dbg

_calloc_dbg