Aracılığıyla paylaş


_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.

Ayrıca bkz.

Başvuru

Hata Ayıklama Yordamları

malloc

_calloc_dbg

_calloc_dbg