共用方式為


_realloc_dbg

重新配置的記憶體堆積中指定的區塊,以移動和/或調整大小的區塊 (偵錯版本)。

void *_realloc_dbg(
   void *userData,
   size_t newSize,
   int blockType,
   const char *filename,
   int linenumber 
);

參數

  • userData
    在先前配置的記憶體區塊的指標。

  • newSize
    要求配置的區塊 (位元組) 的大小。

  • blockType
    要求配置的區塊類型: _CLIENT_BLOCK或_NORMAL_BLOCK。

  • filename
    要求的原始程式檔名稱的指標realloc作業,則傳回 NULL。

  • linenumber
    行號原始程式檔中的, realloc作業已要求,則為 NULL。

filename和linenumber參數才可以使用的時機_realloc_dbg明確地呼叫或 _CRTDBG_MAP_ALLOC 巳經定義了前置處理器常數。

傳回值

如果成功地完成,這個函式傳回使用者部份的重新配置的記憶體區塊的指標、 呼叫新的處理常式函式,或是會傳回 NULL。 傳回的行為的完整說明,請參閱下列的 < 備註 > 一節。 如需有關如何使用新的處理常式函式的詳細資訊,請參閱 realloc 函式。

備註

_realloc_dbg偵錯版本的 realloc 函式。 當 _DEBUG 沒有定義,每次呼叫_realloc_dbg將減少以呼叫realloc。 兩者都realloc和_realloc_dbg重新配置記憶體區塊,在基底堆積中,但_realloc_dbg所能容納的幾個偵錯功能: 任一邊的使用者區塊的部份若要測試是否有裂縫,來追蹤特定的配置類型的區塊型別參數的緩衝區和filename/linenumber的資訊來判斷配置要求的原點。

_realloc_dbg重新配置比要求稍微多一點空間指定的記憶體區塊newSize。 newSize可能是大於或小於原本已配置的記憶體區塊的大小。 額外的空間用於偵錯堆積管理員若要連結的偵錯記憶體區塊,並提供偵錯標頭資訊給應用程式,並覆寫緩衝區。 重新配置可能會導致將原始的記憶體區塊移至堆積中,在不同的位置,以及變更記憶體區塊的大小而定。 如果移動記憶體區塊時,會覆寫原始區塊的內容。

_realloc_dbg設定errno到ENOMEM記憶體配置失敗時,或所需的記憶體 (包括先前所述的額外負荷) 量超過_HEAP_MAXREQ。 如需這和其他錯誤碼資訊,請參閱errno、 _doserrno、 _sys_errlist 和 _sys_nerr

如需有關如何記憶體區塊會配置、 初始化,而且在基底堆積的偵錯版本管理的資訊,請參閱記憶體管理和偵錯堆積。 配置的區塊型別和它們的使用方式的相關資訊,請參閱類型的區塊在偵錯堆積上。 呼叫 [應用程式的偵錯組建中的 [標準的堆積函式和它的偵錯版本之間的差異的相關資訊,請參閱使用偵錯版本 Versus 基底版本

需求

常式

所需的標頭

_realloc_dbg

<crtdbg.h>

如需相容性資訊,請參閱相容性在簡介中。

文件庫

偵錯版本的 C 執行階段程式庫只。

範例

此範例中的,請參閱 _msize_dbg 主題。

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

偵錯常式

_malloc_dbg