Condividi tramite


_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.

Vedere anche

Riferimenti

Routine di debug