Aracılığıyla paylaş


_realloc_dbg

Bloğu taşıyarak ve/veya yeniden boyutlandırarak yığındaki belirtilen bellek bloğunu yeniden ayırır (yalnızca hata ayıklama sürümü).

Sözdizimi

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

Parametreler

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

newSize
Yeniden ayrılan blok (bayt) için istenen boyut.

blockType
Yeniden ayrılmış blok için istenen tür: _CLIENT_BLOCK veya _NORMAL_BLOCK.

filename
veya NULLişlemini isteyen kaynak dosyanın adına yönelik realloc işaretçi.

linenumber
İşlemin istendiği kaynak dosyadaki realloc satır numarası veya NULL.

filename ve linenumber parametreleri yalnızca açıkça çağrıldığında _realloc_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 realloc bakın.

Açıklamalar

_realloc_dbg işlevin realloc hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG , çağrısının her _realloc_dbg biri öğesine yapılan çağrıya reallocindirgenir. Hem hem de realloc temel yığındaki bir bellek bloğunu yeniden ayırın, ancak _realloc_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._realloc_dbg

_realloc_dbg belirtilen bellek bloğunu istenenden newSizebiraz daha fazla alanla yeniden ayırır. newSize özgün olarak ayrılan bellek bloğunun boyutundan büyük veya daha küçük olabilir. 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. Bellek bloğu taşınırsa, özgün bloğun içeriğinin üzerine yazılır.

_realloc_dbgENOMEM, bellek ayırmanın başarısız olup olmadığını veya gereken bellek miktarının (daha önce bahsedilen ek yük dahil) aşılıp aşılmadığını _HEAP_MAXREQolarak ayarlarerrno. 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ı. 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. 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
_realloc_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.

Örnek

Makalenin örneğine _msize_dbg bakın.

Ayrıca bkz.

Hata ayıklama yordamları
_malloc_dbg