共用方式為


_aligned_recalloc_dbg

變更大小,以已配置的記憶體區塊的 _aligned_malloc_aligned_offset_malloc ,並初始化為 0 (偵錯版本) 的記憶體。

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

參數

  • [in] memblock
    目前的記憶體區塊指標。

  • [in] num
    項目的數目。

  • [in] size
    以位元組為單位,每個項目的大小。

  • [in] alignment
    必須是整數的次方 2 對齊值。

  • [in] filename
    要求配置作業的來源檔案名稱的指標或NULL。

  • [in] linenumber
    對齊配置操作所要求的原始程式檔中的數字或NULL。

傳回值

_aligned_recalloc_dbg在重新配置 (以及可能已移動) 的記憶體區塊會傳回 void 指標。 傳回值是NULL如果大小為零,而緩衝區引數不是NULL,或如果沒有足夠的記憶體來展開區塊,以指定的大小。 如為前者,釋放原始的區塊。 在第二個案例中,原始的區塊不變。 傳回的值會指向儲存空間,以保證會適當地對齊來儲存任何型別的物件。 取得變數的指標型別不是 void,在使用傳回的值時,施展型別。

就會重新配置記憶體,並變更區塊的對齊方式的錯誤。

備註

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

_aligned_recalloc_dbg重新配置比要求的大小稍微多一點空間指定的記憶體區塊 (num * size),可能會大於或小於原本已配置的記憶體區塊的大小。 額外的空間用於偵錯堆積管理員若要連結的偵錯記憶體區塊,並提供偵錯標頭資訊給應用程式,並覆寫緩衝區。 重新配置可能會導致將原始的記憶體區塊移至堆積中,在不同的位置,以及變更記憶體區塊的大小而定。 使用者的部分區塊填滿 0xCD 的值而覆寫緩衝區會填入 0xFD。

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

此外, _aligned_recalloc_dbg驗證它的參數。 如果alignment並不是可使用的冪為 2,此函式呼叫不正確的參數處理常式中,如所述參數驗證。 如果執行則允許繼續執行,則這個函式會傳回NULL ,並設定errno到EINVAL。

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

需求

常式

所需的標頭

_aligned_recalloc_dbg

<crtdbg.h>

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

文件庫

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

.NET Framework 對等用法

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

請參閱

參考

偵錯常式