_aligned_malloc_dbg
Alloca memoria in un limite di allineamento specificato con spazio aggiuntivo per un'intestazione di debug e buffer di sovrascrittura (solo versione di debug).
void * _aligned_malloc_dbg( size_t size, size_t alignment, const char *filename, int linenumber );
Parametri
[in] size
Dimensione dell'allocazione di memoria richiesta.[in] alignment
Valore di allineamento, che deve essere una potenza intera di 2.[in] filename
Puntatore al nome del file di origine che ha richiesto l'operazione di allocazione o NULL.[in] 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.
Note
_aligned_malloc_dbg è una versione di debug della funzione _aligned_malloc. 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.
_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 di intestazione di debug e buffer di sovrascrittura. Quando il blocco è allocato, la porzione utente del blocco viene riempita con il valore 0xCD e ciascuno 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_errlist, and _sys_nerr. _aligned_malloc_dbg, inoltre, convalida i propri parametri. Se alignment non è una potenza di 2 o size è uguale a 0, 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 sulle modalità di allocazione, inizializzazione e gestione dei blocchi di memoria nella versione di debug dell'heap di base, vedere Informazioni dettagliate sull'heap di debug CRT. Per informazioni sui tipi di blocchi di allocazione e su come vengono usati, vedere Tipi di blocchi sull'heap di debug. Per informazioni sulle differenze tra chiamare una funzione standard dell'heap e la sua versione di debug nella build di debug di un'applicazione, vedere Versioni di debug di funzioni di allocazione heap.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_aligned_malloc_dbg |
<crtdbg.h> |
Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.
Librerie
Solo versioni di debug delle librerie di runtime C.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione C standard, usare PInvoke. Per altre informazioni, vedere Esempi di platform invoke.