Aracılığıyla paylaş


_realloc_dbg

Belirtilen bir yığınındaki bellek bloğu ve/taşıma veya yeniden boyutlandırmayı engelleyin (yalnızca hata ayıklama sürümü) tarafından yeniden tahsis ederse.

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

Parametreler

  • userData
    Önceden ayrılmış bellek bloğu için işaretçi.

  • newSize
    Boyut (bayt) reallocated bloğu için istedi.

  • blockType
    Reallocated blok türü istendi: _CLIENT_BLOCK veya _NORMAL_BLOCK.

  • filename
    İşaretçi istenen kaynak dosyasının adı realloc işlem veya NULL.

  • linenumber
    Satır numarası kaynak dosyasında nereye realloc işlem istenen veya NULL.

filename Ve linenumber parametreleri yalnızca kullanılabilir ne zaman _realloc_dbg açıkça adlı veya _CRTDBG_MAP_ALLOC önişlemci sabit tanımlı.

Dönüş Değeri

Başarıyla tamamlandığında, bu işlev reallocated bellek bloğu kullanıcı bölümüne bir işaretçi döndürür, yeni bir işleyici işlevi çağıran veya NULL döndürür.Dönüş davranış eksiksiz bir açıklaması için aşağıdaki Açıklamalar bölümüne bakın.Yeni bir işleyici işlevi nasıl kullanıldığı hakkında daha fazla bilgi için bkz: realloc işlev.

Notlar

_realloc_dbgbir hata ayıklama sürümü realloc işlev.Zaman _DEBUG tanımlı değilse, her arama _realloc_dbg bir çağrı için sınırlı realloc.Her ikisi de realloc ve _realloc_dbg temel Öbek bellek bloğunda yeniden tahsis ancak _realloc_dbg birkaç hata ayıklama özellikleri kapsar: arabellekleri her iki tarafındaki sızıntıları, belirli ayırma, izlemek için bir blok türü parametresi sınamak için blok kullanıcı bölümünü ve filename/linenumber ayırma isteklerini kaynağını belirlemek için bilgi.

_realloc_dbgİstenen biraz daha fazla alan ile belirtilen bellek bloğunu yeniden tahsis ederse newSize.newSizedaha büyük veya daha küçük başlangıçta ayrılan bellek bloğu boyutu olabilir.Ek alan tarafından hata ayıklama yığın yöneticisinin hata ayıklama bellek bloklarını bağlama ve uygulama ile hata ayıklama başlık bilgilerini sağlar ve arabellekleri üzerine yazmak için kullanılır.Tahsisat, özgün bellek bloğu öbek farklı bir konuma taşıyarak, aynı zamanda bellek bloğu boyutunu değiştirme neden olabilir.Bellek bloğu taşınırsa, özgün blok içeriğinin üzerine yazılır.

_realloc_dbgAyarlar errno için ENOMEM bir bellek ayırma başarısız olursa veya (daha önce bahsedilen gider dahil) gerekli bellek miktarını aşarsa _HEAP_MAXREQ.Bu hata kodu ve diğer hata kodları hakkında bilgi için bkz. errno, _doserrno, _sys_errlist, and _sys_nerr.

Bellek bloklarının taban yığının hata ayıklama sürümünde nasıl ayrıldığı, başlatıldığı ve yönetildiği hakkında bilgi için, bkz. CRT Hata Ayıklama Öbeği Ayrıntıları.Ayırma blok türleri ve nasıl kullanılacakları hakkında daha fazla bilgi için bkz: hata ayıklama öbek üzerindeki blokları türleri.Bir uygulamanın hata ayıklama yapı içinde bir standart yığın işlevi ve hata ayıklama sürümünü çağırmak arasındaki farklar hakkında daha fazla bilgi için bkz: Öbek Atama İşlevleri Hata Ayıklama Sürümleri.

Gereksinimler

Yordam

Gerekli başlık

_realloc_dbg

<crtdbg.h>

Daha fazla uyumluluk bilgisi için Giriş altındaki Uyumluluk bölümüne bakın.

Kitaplıklar

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

Örnek

Örnekte bkz: _msize_dbg konu.

.NET Framework Eşdeğeri

Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.

Ayrıca bkz.

Başvuru

Hata Ayıklama Yordamları

_malloc_dbg