_aligned_recalloc_dbg
İle ayrılan bir bellek blok boyutunu değiştirir _aligned_malloc veya _aligned_offset_malloc ve bellek 0 (yalnızca hata ayıklama sürümü) başlatır.
void * _aligned_recalloc_dbg(
void * memblock,
size_t num,
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parametreler
[in] memblock
Geçerli bellek blok işaretçisi.[in] num
Öğe sayısı.[in] size
Her öğenin bayt cinsinden boyutu.[in] alignment
2'nin tam sayı üssü olması gereken hizalama değeri.[in] filename
Ayırma işlemi istenen kaynak dosyasının adını işaretçisine veya NULL.[in] linenumber
Satır numarası nerede ayırma işlemi istendi kaynak dosyasındaki veya NULL.
Dönüş Değeri
_aligned_recalloc_dbg void bir işaretçi bırakılan (ve büyük olasılıkla taşınan) bellek bloğuna döndürür.Dönüş değeri NULL boyutu sıfırsa ve arabellek bağımsız değişken değil NULL, veya blok belirtilen boyuta genişletmek için yeterli kullanılabilir bellek değilse.Bu durumda, özgün blok serbest kalır.İkinci durumda, özgün blok değiştirilmez.Nesnenin herhangi bir türde depolama için uygun hizalanması garanti bir depolama alanı dönüş değeri gösterir.Dönüş değerini cast türü void, kullanım farklı bir türü için bir işaretçi almak için.
Bellek yeniden ayırmak ve bir blok hizalamasını değiştirmek için bir hata var.
Notlar
_aligned_recalloc_dbg bir hata ayıklama sürümü _aligned_recalloc işlev.Zaman _DEBUG tanımlı değil, her çağrı _aligned_recalloc_dbg bir çağrı azalır _aligned_recalloc.Her ikisi de _aligned_recalloc ve _aligned_recalloc_dbg temel Öbek bellek bloğunda yeniden ayırmak ancak _aligned_recalloc_dbg çeşitli hata ayıklama özelliklerini kapsar: 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.
_aligned_recalloc_dbg İstenen boyutundan biraz daha fazla alanı ile belirtilen bellek bloğu yeniden tahsis ederse (num * size), büyük veya olabilir başlangıçta ayrılan bellek bloğu boyutu küçüktür.Ek boşluk hata ayıklama bellek blokları bağlantı ve hata ayıklama üstbilgiler uygulaması sağlamak ve arabellek üzerine yazmak için hata ayıklama öbek Yöneticisi tarafından kullanılır.Tahsisat özgün bellek bloğu öbek farklı bir konuma gitmeye, aynı zamanda bellek blok boyutunu değiştirme neden olabilir.Blok kullanıcı bölümünü 0xCD değerle doldurulur ve üzerine yaz arabellek 0xFD doldurulur.
_aligned_recalloc_dbg Ayarlar errno için ENOMEM bir bellek ayırma başarısız olursa; EINVAL (daha önce adı geçen yükü dahil) gereken bellek miktarı aşıyorsa döndürülen _HEAP_MAXREQ.Bu ve diğer hata kodları hakkında daha fazla bilgi için bkz: errno, _doserrno, _sys_errlist, and _sys_nerr.
Ayrıca, _aligned_recalloc_dbg parametrelerini doğrular.Varsa alignment Güç değil açıklandığı gibi bu işlev 2, geçersiz bir parametre işleyici çağırır Parametre Doğrulama.Bu işlev, yürütme devam etmek için izin verilip verilmediğini, döndürür NULL ve ayarlar errno için EINVAL.
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 |
---|---|
_aligned_recalloc_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.
.NET Framework Eşdeğeri
Geçerli değildir. Standart C işlevi çağırmak için kullanılan PInvoke. Daha fazla bilgi için Platform çağırma örnekler.