Aracılığıyla paylaş


_aligned_offset_recalloc

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.

Sözdizimi

void * _aligned_offset_recalloc(
   void *memblock,
   size_t num,
   size_t size,
   size_t alignment,
   size_t offset
);

Parametreler

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

number
Öğe sayısı.

size
Her öğenin bayt cinsinden uzunluğu.

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

offset
Hizalamayı zorlamak için bellek ayırmaya uzaklık.

Dönüş değeri

_aligned_offset_recalloc 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. İ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. Void dışında bir türe işaretçi almak için dönüş değerinde tür tür ataması kullanın.

_aligned_offset_recallocve __declspec(restrict)olarak işaretlenir__declspec(noalias), yani işlevin genel değişkenleri değiştirmemesi garanti edilir ve döndürülen işaretçi diğer adla kullanılmaz. Daha fazla bilgi için bkz. noalias ve restrict.

Açıklamalar

gibi _aligned_offset_malloc, _aligned_offset_recalloc bir yapının yapı içindeki bir uzaklıkta hizalanmasına izin verir.

_aligned_offset_recalloc tabanlıdır malloc. kullanma _aligned_offset_mallochakkında daha fazla bilgi için bkz malloc. . ise memblockNULL, işlevi dahili olarak çağırır _aligned_offset_malloc .

Bu işlev, bellek ayırmanın başarısız olup olmadığını veya istenen boyutun (number * size) 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_offset_recalloc doğrular. alignment 2'nin gücü değilse veya sıfır olmayan ve istenenden sizebüyük veya buna eşitseoffset, 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_offset_recalloc <malloc.h>

Ayrıca bkz.

Veri hizalama
_recalloc
_aligned_recalloc