_malloc_dbg
Bir ek boşluk Yığınındaki bellek bloğu için hata ayıklama üstbilgi ayırır ve arabellek (yalnızca hata ayıklama sürümü) üzerine yazılır.
void *_malloc_dbg( size_t size, int blockType, const char *filename, int linenumber );
Parametreler
size
Boyut (bayt cinsinden) bellek bloğun istedi.blockType
Bellek Blok türü istedi: _CLIENT_BLOCK veya _NORMAL_BLOCK.filename
Ayırma işlemi veya NULL istenen kaynak dosya adı işaretçisi.linenumber
Satır numarası ayırma işlemi burada istenen kaynak dosyasındaki veya NULL.
filename Ve linenumber parametreleri yalnızca kullanılabilir olduğunda _malloc_dbg açıkça çağrılır veya _CRTDBG_MAP_ALLOC ön işlemci sabit tanımlı.
Dönüş Değeri
Bu işlev başarıyla tamamlandığında, bir işaretçi ayrılan bellek bloğu kullanıcı bölümünü döndürür, yeni işleyici işlev çağrıları veya NULL döndürür.Dönüş davranışını tam açıklama için aşağıdaki Açıklamalar bölümüne bakın.Yeni işleyici işlevi nasıl kullanıldığı hakkında daha fazla bilgi için malloc işlev.
Notlar
_malloc_dbgbir hata ayıklama sürümü malloc işlev.Zaman _DEBUG tanımlı değil, her çağrı _malloc_dbg bir çağrı azalır malloc.Her ikisi de malloc ve _malloc_dbg bir temel yığınındaki bellek bloğu Ayır ancak _malloc_dbg çeşitli hata ayıklama özellikler sunar: arabellek sızıntıları, belirli bir ayırma türleri, izlemek için bir blok türü parametresi sınamak için blok kullanıcı bölümünü her iki tarafındaki ve filename/linenumber ayırma isteklerini kaynağını belirlemek için bilgi.
_malloc_dbgbellek bloğu ile istenen biraz daha fazla alan ayırır size.Ek boşluk hata ayıklama bellek blokları bağlantısını ve hata ayıklama üstbilgi bilgileri uygulamayla sağlamak ve arabellek üzerine yazmak için hata ayıklama öbek Yöneticisi tarafından kullanılır.Blok atandığında blok kullanıcı bölümünü 0xCD değerle doldurulur ve 0xFD ile doldurulmuş her üzerine yaz arabelleklerinin.
_malloc_dbgAyarlar errno için ENOMEM bir bellek ayırma başarısız olursa veya (daha önce adı geçen yükü dahil) gereken 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, and _sys_nerr.
Nasıl bellek blokları ayrılan, başlatılır ve temel öbek hata ayıklama sürümünü yönetilen hakkında daha fazla bilgi için bkz CRT Hata Ayıklama Öbeği Ayrıntıları.Ayırma blok türlerini ve bunların nasıl kullanıldığı hakkında daha fazla bilgi için bkz hata ayıklama yığında blokları türleri.Bir uygulamanın hata ayıklama yapı içinde bir standart öbek işlev ve hata ayıklama sürümünü çağırma 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 |
---|---|
_malloc_dbg |
< crtdbg.h > |
Uyumluluk daha fazla bilgi için bkz: Uyumluluk giriş.
Kitaplıklar
Hata ayıklama sürümleri C çalışma zamanı kitaplıkları yalnızca.
Örnek
Örneği için nasıl kullanılacağını _malloc_dbg, bakın crt_dbg1.
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için Platform çağırma örnekler.