Aracılığıyla paylaş


_aligned_recalloc_dbg

veya _aligned_offset_malloc ile _aligned_malloc ayrılan bir bellek bloğunun boyutunu değiştirir ve belleği 0 olarak başlatır (yalnızca hata ayıklama sürümü).

Sözdizimi

void * _aligned_recalloc_dbg(
   void * memblock,
   size_t num,
   size_t size,
   size_t alignment,
   const char *filename,
   int linenumber
);

Parametreler

memblock
Geçerli bellek bloğu işaretçisi.

number
Öğe sayısı.

size
Her öğenin bayt cinsinden boyutu.

alignment
Hizalama değeri, 2 tamsayı gücü olmalıdır.

filename
Ayırma işlemi veya NULListenen kaynak dosyanın adına yönelik işaretçi.

linenumber
Kaynak dosyada, ayırma işleminin istendiği satır numarası veya NULL.

Dönüş değeri

_aligned_recalloc_dbg yeniden ayrılan (ve büyük olasılıkla taşınan) bellek bloğuna bir void işaretçi döndürür. Dönüş değeri, NULL boyutun sıfır olması ve arabellek bağımsız değişkeninin NULLolmaması veya bloğu verilen boyuta genişletmek için yeterli kullanılabilir bellek olmamasıdır. İlk durumda, özgün blok serbesttir. İkinci durumda, özgün blok değiştirilmez. Dönüş değeri, herhangi bir nesne türünün depolaması için uygun olan bir depolama alanını gösterir. dışında voidbir türe işaretçi almak için dönüş değerinde tür tür ataması kullanın.

Belleği yeniden ayırmak ve bloğun hizalamasını değiştirmek bir hatadır.

Açıklamalar

_aligned_recalloc_dbg işlevin _aligned_recalloc hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG , çağrısının her _aligned_recalloc_dbg biri öğesine yapılan çağrıya _aligned_recallocindirgenir. Hem hem _aligned_recalloc_dbg de _aligned_recalloc temel yığındaki bir bellek bloğunu yeniden ayırın, ancak _aligned_recalloc_dbg birkaç hata ayıklama özelliği içerir: sızıntıları test etmek için bloğun kullanıcı bölümünün her iki tarafındaki arabellekler ve filename/linenumber ayırma isteklerinin kaynağını belirlemeye yönelik bilgiler. Blok türü parametresiyle belirli ayırma türlerini izlemek, hizalanmış ayırmalar için desteklenen bir hata ayıklama özelliği değildir. Hizalanmış ayırmalar bir _NORMAL_BLOCK blok türü olarak görünür.

_aligned_recalloc_dbg belirtilen bellek bloğunu, başlangıçta ayrılan bellek bloğunun boyutundan büyük veya daha küçük olabilecek istenen boyuttan (number * size) biraz daha fazla alanla yeniden ayırır. Ek alan, hata ayıklama yığın yöneticisi tarafından hata ayıklama bellek bloklarını bağlamak ve uygulamaya hata ayıklama üst bilgisi bilgileri sağlamak ve arabelleklerin üzerine yazmak için kullanılır. Yeniden konumlandırma hem özgün bellek bloğunu yığında farklı bir konuma taşıyabilir hem de bellek bloğunun boyutunu değiştirebilir. Bloğun kullanıcı bölümü 0xCD değeriyle doldurulur ve üzerine yazma arabellekleri 0xFD ile doldurulur.

_aligned_recalloc_dbgENOMEM bir bellek ayırmanın başarısız olması durumunda olarak ayarlanırerrno; EINVAL gereken bellek miktarı (daha önce bahsedilen ek yük dahil) aşılırsa _HEAP_MAXREQdöndürülür. Bu ve diğer hata kodları hakkında bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.

Ayrıca parametrelerini _aligned_recalloc_dbg doğrular. alignment 2'nin gücü değilse, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlev döndürür NULL ve olarak EINVALayarlanırerrno.

Temel yığının hata ayıklama sürümünde bellek bloklarının nasıl ayrıldığı, başlatıldığı ve yönetildiğini öğrenmek için bkz . CRT hata ayıklama yığını ayrıntıları. Ayırma bloğu türleri ve bunların nasıl kullanıldığı hakkında bilgi için bkz . Hata ayıklama yığınındaki blok türleri. Standart yığın işlevleri ile bunların hata ayıklama sürümleri arasındaki farklar hakkında bilgi için bkz . Yığın ayırma işlevlerinin sürümlerinde hata ayıklama.

Gereksinimler

Yordam Gerekli başlık
_aligned_recalloc_dbg <Crtdbg>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Kitaplıklar

Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.

Ayrıca bkz.

Hata ayıklama yordamları