Condividi tramite


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

Vedere anche

Riferimenti

Procedura di debug

differenze