Aracılığıyla paylaş


_recalloc_dbg

Bir diziyi yeniden ayırır ve öğelerini 0 olarak başlatır (yalnızca hata ayıklama sürümü).

Sözdizimi

void *_recalloc_dbg(
   void *userData,
   size_t num,
   size_t size,
   int blockType,
   const char *filename,
   int linenumber
);

Parametreler

userData
Önceden ayrılmış bellek bloğunun işaretçisi.

number
İstenen bellek bloğu sayısı.

size
Her bellek bloğunun (bayt) boyutu istendi.

blockType
İstenen bellek bloğu türü: _CLIENT_BLOCK veya _NORMAL_BLOCK.

Ayırma bloğu türleri ve bunların nasıl kullanıldığı hakkında bilgi için bkz . Hata ayıklama yığınındaki blok türleri.

filename
Ayırma işlemi veya NULListenen kaynak dosyanın adına yönelik işaretçi.

linenumber
Kaynak dosyada, ayırma işleminin istendiği satır numarası veya NULL.

filename ve linenumber parametreleri yalnızca açıkça çağrıldığında _recalloc_dbg veya önişlemci sabiti _CRTDBG_MAP_ALLOC tanımlandığında kullanılabilir.

Dönüş değeri

Başarıyla tamamlandığında, bu işlev yeniden ayrılan bellek bloğunun kullanıcı bölümüne bir işaretçi döndürür, yeni işleyici işlevini çağırır veya döndürür NULL. Dönüş davranışının tam açıklaması için aşağıdaki Açıklamalar bölümüne bakın. Yeni işleyici işlevinin nasıl kullanıldığı hakkında daha fazla bilgi için işleve _recalloc bakın.

Açıklamalar

_recalloc_dbg işlevin _recalloc hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG , çağrısının her _recalloc_dbg biri öğesine yapılan çağrıya _recallocindirgenir. Hem hem de _recalloc temel yığındaki bir bellek bloğunu yeniden ayırın, ancak _recalloc_dbg birkaç hata ayıklama özelliğini barındırır: sızıntıları test etmek için bloğun kullanıcı bölümünün her iki tarafındaki arabellekler, belirli ayırma türlerini izlemek için bir blok türü parametresi ve filename/linenumber ayırma isteklerinin kaynağını belirlemek için bilgiler._recalloc_dbg

_recalloc_dbg belirtilen bellek bloğunu, başlangıçta ayrılan bellek bloğunun boyutundan büyük veya daha küçük olabilecek istenen boyuttan (number * size) biraz daha fazla alanla yeniden ayırır. Ek alan, hata ayıklama yığın yöneticisi tarafından hata ayıklama bellek bloklarını bağlamak ve uygulamaya hata ayıklama üst bilgisi bilgileri sağlamak ve arabelleklerin üzerine yazmak için kullanılır. Yeniden konumlandırma, hem özgün bellek bloğunun yığında farklı bir konuma taşınmasına hem de bellek bloğunun boyutunun değiştirilmesine neden olabilir. Bloğun kullanıcı bölümü 0xCD değeriyle doldurulur ve üzerine yazma arabelleklerinin her biri 0xFD ile doldurulur.

_recalloc_dbgENOMEM bir bellek ayırmanın başarısız olması durumunda olarak ayarlanırerrno; EINVAL gereken bellek miktarı (daha önce bahsedilen ek yük dahil) aşılırsa _HEAP_MAXREQdöndürülür. Bu ve diğer hata kodları hakkında bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Temel yığının hata ayıklama sürümünde bellek bloklarının nasıl ayrıldığı, başlatıldığı ve yönetildiğini öğrenmek için bkz . CRT hata ayıklama yığını ayrıntıları. Standart yığın işlevleri ile hata ayıklama sürümleri arasındaki farklar hakkında bilgi için bkz . Yığın ayırma işlevlerinin sürümlerinde hata ayıklama.

Gereksinimler

Yordam Gerekli başlık
_recalloc_dbg <crtdbg.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Kitaplıklar

Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.

Ayrıca bkz.

Hata ayıklama yordamları