_malloc_dbg
Hata ayıklama başlığı için ek alan ile Öbek bellek bloğunu ayırır ve arabellek (yalnızca hata ayıklama sürümü) üzerine.
void *_malloc_dbg(
size_t size,
int blockType,
const char *filename,
int linenumber
);
Parametreler
size
Boyutunu (bayt cinsinden) bellek bloğu istedi.blockType
Bellek bloğu türü istendi: _CLIENT_BLOCK veya _NORMAL_BLOCK.filename
Ayırma işlemi veya null istenen kaynak dosyasının adı için işaretçi.linenumber
Satır numarasını burada ayırma işlemi istendi kaynak dosyadaki veya null.
filename Ve linenumber parametreleri yalnızca kullanılabilir ne zaman _malloc_dbg açıkça adlı veya _crtdbg_map_alloc Önişlemci sabit tanımlı.
Dönüş Değeri
Bu işlev ayrılmış bellek bloğu kullanıcı bölümüne bir işaretçi döndürür başarıyla tamamlandığında, yeni 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: malloc işlevi.
Notlar
_malloc_dbghata ayıklama sürümü malloc işlevi. Zaman _debug tanımlı değil, her çağrı için _malloc_dbg çağrısı nedeniyle sınırlı malloc. Her ikisi de malloc ve _malloc_dbg temel Öbek bellek bloğunu tahsis ancak _malloc_dbg birkaç hata ayıklama özellikleri sunar: 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.
_malloc_dbgbellek bloğu ile istenen'den biraz daha fazla yer ayıran size. 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. Blok tahsis edilirken blok kullanıcı bölümünü 0xCD değeri girilir ve 0xFD ile doldurulmuş her Yaz arabellekler.
_malloc_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.
Gereksinimler
Yordamı |
Gerekli başlık |
---|---|
_malloc_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
Nasıl kullanılacağını gösteren bir örnek için _malloc_dbg, bkz: crt_dbg1.
.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.