Condividi tramite


_aligned_malloc_dbg

Alloca memoria su un limite di allineamento specificato con spazio aggiuntivo per un'intestazione di debug e buffer di sovrascrittura (solo versione di debug).

Sintassi

void * _aligned_malloc_dbg(
    size_t size,
    size_t alignment,
   const char *filename,
   int linenumber
);

Parametri

size
Dimensione dell'allocazione della memoria necessaria.

alignment
Valore di allineamento, che deve essere una potenza intera di 2.

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

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

Valore restituito

Puntatore al blocco di memoria allocato o NULL se l'operazione non è riuscita.

Osservazioni:

_aligned_malloc_dbg è una versione di debug della _aligned_malloc funzione. Quando _DEBUG non è definito, ogni chiamata a _aligned_malloc_dbg viene ridotta a una chiamata a _aligned_malloc. Sia _aligned_malloc che _aligned_malloc_dbg allocano un blocco di memoria nell'heap di base, ma _aligned_malloc_dbg contiene diverse funzionalità di debug: buffer presenti a entrambi i lati della porzione utente del blocco in cui verificare la presenza di perdite e informazioni su filename/linenumber per determinare l'origine delle richieste di allocazione. Il rilevamento di tipi di allocazione specifici con un parametro di tipo di blocco non è una funzionalità di debug supportata per le allocazioni allineate. Le allocazioni allineate verranno visualizzate come _NORMAL_BLOCK tipo di blocco.

_aligned_malloc_dbg alloca il blocco di memoria con una quantità di spazio appena superiore a quella richiesta da size. Lo spazio aggiuntivo viene usato dal gestore dell'heap di debug per collegare i blocchi di memoria di debug e per fornire all'applicazione informazioni sull'intestazione di debug e buffer di sovrascrittura. Quando il blocco viene allocato, la parte utente del blocco viene riempita con il valore 0xCD e ognuno dei buffer di sovrascrittura viene riempito con 0xFD.

_aligned_malloc_dbg imposta errno su ENOMEM se un'allocazione di memoria ha esito negativo o se la quantità di memoria richiesta (incluso l'overhead citato in precedenza) supera _HEAP_MAXREQ. Per informazioni su questo e altri codici di errore, vedere errno, _doserrno, _sys_errliste _sys_nerr. _aligned_malloc_dbg, inoltre, convalida i propri parametri. Se alignment non è una potenza pari a 2 o size è zero, questa funzione richiama il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione restituisce NULL e imposta errno su EINVAL.

Per informazioni sulla modalità di allocazione, inizializzazione e gestione dei blocchi di memoria nella versione di debug dell'heap di base, vedere Dettagli dell'heap di debug CRT. Per informazioni sui tipi di blocchi di allocazione e sul modo in cui vengono usati, vedere Tipi di blocchi nell'heap di debug. Per informazioni sulle differenze tra le funzioni heap standard e le relative versioni di debug, vedere Eseguire il debug delle versioni delle funzioni di allocazione dell'heap.

Requisiti

Ciclo Intestazione obbligatoria
_aligned_malloc_dbg <crtdbg.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Librerie

Solo le versioni di debug delle librerie di runtime di C.

Vedi anche

Routine di debug