_realloc_dbg
Belirtilen bir yığın bellek bloğu ve/taşıma veya yeniden boyutlandırmayı engelleyin (yalnızca hata ayıklama sürümü) tarafından reallocates.
void *_realloc_dbg(
void *userData,
size_t newSize,
int blockType,
const char *filename,
int linenumber
);
Parametreler
userData
Daha önce 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
İstenen kaynak dosyanın adını işaretçisine realloc işlem veya null.linenumber
Kaynak dosyadaki satır nerede 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şlevi.
Notlar
_realloc_dbghata ayıklama sürümü realloc işlevi. Zaman _debug tanımlı değil, her çağrı için _realloc_dbg çağrısı nedeniyle sınırlı realloc. Her ikisi de realloc ve _realloc_dbg temel Öbek bellek bloğunda tahsis ancak _realloc_dbg birkaç hata ayıklama özelliği bulunur: arabellekleri her iki tarafına sızıntıları, belirli ayırma türleri, 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_dbgBelirtilen bellek bloğu ile istenen biraz daha fazla alandan reallocates newSize. newSizebüyük ya da başlangıçta ayrılan bellek bloğu boyutundan küçük 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 üstbilgi bilgileri sağlamak ve arabellek üzerine yazmak için kullanılır. Tahsisat, orijinal bellek bloğu yığın içinde farklı bir konuma taşıma, 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 sözü edilen genel giderleri dahil) gerekli bellek miktarını aşarsa _HEAP_MAXREQ. Bu ve diğer hata kodları hakkında daha fazla bilgi için bkz: errno, _doserrno, _sys_errlist ve _sys_nerr.
Nasıl bellek bloklarını tahsis başlatıldı ve yönetilen temel yığın hata ayıklama sürümü hakkında daha fazla bilgi için bkz: bellek yönetimi ve hata ayıklama öbek. Ayırma blok türleri ve nasıl kullanılacakları hakkında daha fazla bilgi için bkz: Türler bloklar hata ayıklama öbek üzerindeki. Bir uygulama hata ayıklama yapısında 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: hata ayıklama sürümü Versus Base sürümü kullanarak.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_realloc_dbg |
<crtdbg.h> |
Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.
Kitaplıkları
Hata ayıklama sürümlerini c çalışma zamanı kitaplıkları yalnızca.
Örnek
Örneğe bakın _msize_dbg konu.
.NET Framework Eşdeğeri
Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.