Aracılığıyla paylaş


_aligned_realloc

veya _aligned_offset_mallocile _aligned_malloc ayrılan bir bellek bloğunun boyutunu değiştirir.

Sözdizimi

void * _aligned_realloc(
   void *memblock,
   size_t size,
   size_t alignment
);

Parametreler

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

size
İstenen bellek ayırmanın boyutu.

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

Dönüş değeri

_aligned_realloc yeniden ayrılan (ve büyük olasılıkla taşınan) bellek bloğu için geçersiz bir 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. İkincisinde ö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. Void dışında bir 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_realloc tabanlıdır malloc. kullanma _aligned_offset_mallochakkında daha fazla bilgi için bkz malloc. .

Bu işlev, bellek ayırmanın başarısız olup olmadığını veya istenen boyutun değerinden _HEAP_MAXREQbüyük olup olmadığını olarak ayarlar.errnoENOMEM hakkında errnodaha fazla bilgi için bkz.errno , _doserrno, _sys_errlistve _sys_nerr. Ayrıca parametrelerini _aligned_realloc 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.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Yordam Gerekli başlık
_aligned_realloc <malloc.h>

Örnek

Daha fazla bilgi için bkz. _aligned_malloc.

Ayrıca bkz.

Veri hizalama