_realloc_dbg
Ridistribuisce un blocco di memoria specificato nell'heap spostando e/o il ridimensionamento del blocco (versione di debug solo).
void *_realloc_dbg(
void *userData,
size_t newSize,
int blockType,
const char *filename,
int linenumber
);
Parametri
userData
Puntatore in precedenza al blocco di memoria allocata.newSize
Dimensione richiesta dal blocco ridistribuito (byte).blockType
tipo richiesto per il blocco ridistribuito: _CLIENT_BLOCK o _NORMAL_BLOCK.filename
Puntatore al nome del file di origine che ha richiesto realloc operazione o NULL.linenumber
Numero di riga nel file di origine in cui realloc l'operazione è richiesta o NULL.
filename e linenumber i parametri sono disponibili solo quando _realloc_dbg è stato chiamato in modo esplicito o _CRTDBG_MAP_ALLOC la costante del preprocessore è stata definita.
Valore restituito
Al termine, viene restituito di questa funzione o un puntatore all'utente del blocco di memoria ridistribuito, 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 realloc funzione.
Note
_realloc_dbg è una versione di debug di realloc funzione.quando _DEBUG non è definita, ogni chiamata a _realloc_dbg è stato ridotto a una chiamata a realloc.entrambi realloc e _realloc_dbg ridistribuire un blocco di memoria nell'heap di base, ma _realloc_dbg appropriata diverse 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.
_realloc_dbg rialloca il blocco di memoria specificato con leggermente più spazio rispetto richiesto newSize.newSize potrebbe essere maggiore o minore della dimensione originariamente il blocco di memoria allocata.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.La riallocazione potrebbe comportare spostare il blocco di memoria originale in un percorso diverso nell'heap nonché modificare le dimensioni del blocco di memoria.Se il blocco di memoria è spostato, il contenuto del blocco originale viene sovrascritto.
_realloc_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.Per informazioni sulle differenze tra chiamare una funzione standard dell'heap e la relativa versione di debug in una build di debug di un'applicazione, vedere Utilizzando la versione di debug nella versione di base.
Requisiti
routine |
Intestazione di associazione |
---|---|
_realloc_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
vedere l'esempio in _msize_dbg argomento.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.