Condividi tramite


_aligned_recalloc_dbg

Modifica la dimensione di un blocco di memoria allocato mediante _aligned_malloc o _aligned_offset_malloc e inizializza la memoria su 0 (solo versione di debug).

void * _aligned_recalloc_dbg(    void * memblock,     size_t num,    size_t size,     size_t alignment,    const char *filename,    int linenumber );

Parametri

  • [in] memblock
    Puntatore al blocco di memoria corrente.

  • [in] num
    Numero di elementi.

  • [in] size
    Dimensione in byte di ogni elemento.

  • [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

_aligned_recalloc_dbg restituisce un puntatore void al blocco di memoria riallocato (e possibilmente spostato). Il valore restituito è NULL se la dimensione è pari a zero e l'argomento relativo al buffer non è NULL o se non è disponibile memoria sufficiente per espandere il blocco alla dimensione specificata. Nel primo caso il blocco originale viene liberato. Nel secondo caso il blocco originale resta invariato. Il valore restituito punta a uno spazio di archiviazione che garantisce il corretto allineamento per l'archiviazione di qualsiasi tipo di oggetto. Per ottenere un puntatore a un tipo diverso da void, usare un cast del tipo sul valore restituito.

Riallocare memoria modificando l'allineamento di un blocco è un errore.

Note

_aligned_recalloc_dbg è una versione di debug della funzione _aligned_recalloc. Quando _DEBUG non è definito, ogni chiamata a _aligned_recalloc_dbg viene ridotta a una chiamata a _aligned_recalloc. Sia _aligned_recalloc che _aligned_recalloc_dbg riallocano un blocco di memoria nell'heap di base, ma _aligned_recalloc_dbg contiene diverse funzionalità di debug, come buffer presenti alle estremità della porzione utente del blocco in cui verificare la presenza di perdite, un parametro di tipo del blocco per registrare i tipi specifici di allocazioni e informazioni su filename/linenumber per determinare l'origine delle richieste di allocazione.

_aligned_recalloc_dbg rialloca il blocco di memoria specificato con una quantità di spazio leggermente superiore alla dimensione richiesta (num * size) che può essere maggiore o minore delle dimensioni del blocco di memoria allocato in origine. 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. La riallocazione potrebbe comportare lo spostamento del blocco di memoria originale in un'altra posizione nell'heap nonché la modifica della dimensione del blocco di memoria. La porzione utente del blocco viene riempita con il valore 0xCD e i buffer di sovrascrittura vengono riempiti con 0xFD.

_aligned_recalloc_dbg imposta errno su ENOMEM se fallisce un'allocazione di memoria; EINVAL viene restituito se la quantità di memoria richiesta (incluso l'overhead menzionato precedentemente) supera _HEAP_MAXREQ. Per informazioni su questo e altri codici di errore, vedere errno, _doserrno, _sys_errlist, and _sys_nerr.

_aligned_recalloc_dbg, inoltre, convalida i propri parametri. Se alignment non è una potenza di 2, questa funzione richiama il gestore di parametro non valido, 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_recalloc_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