_aligned_recalloc
Zmienia rozmiar bloku pamięci przydzielonego na _aligned_malloc
wartość lub _aligned_offset_malloc
i inicjuje pamięć na 0.
Składnia
void * _aligned_recalloc(
void *memblock,
size_t num,
size_t size,
size_t alignment
);
Parametry
memblock
Bieżący wskaźnik bloku pamięci.
number
Liczba elementów.
size
Rozmiar w bajtach każdego elementu.
alignment
Wartość wyrównania, która musi być całkowitą potęgą liczby 2.
Wartość zwracana
_aligned_recalloc
Zwraca wskaźnik void do ponownie przydzielonego (i prawdopodobnie przeniesionego) bloku pamięci. Wartość zwracana jest, jeśli rozmiar ma NULL
wartość zero, a argument buforu nie NULL
jest , lub jeśli nie ma wystarczającej ilości dostępnej pamięci, aby rozwinąć blok do danego rozmiaru. W pierwszym przypadku oryginalny blok zostanie uwolniony. W drugim przypadku oryginalny blok pozostaje niezmieniony. Wartość zwracana wskazuje miejsce do magazynowania, które jest odpowiednio wyrównane do magazynu dowolnego typu obiektu. Aby uzyskać wskaźnik do typu innego niż void, użyj rzutowania typu na wartość zwracaną.
Jest to błąd podczas reallokowania pamięci i zmieniania wyrównania bloku.
Uwagi
_aligned_recalloc
jest oparty na .malloc
Aby uzyskać więcej informacji na temat korzystania z programu _aligned_offset_malloc
, zobacz malloc
.
Ta funkcja ustawia errno
na ENOMEM
jeśli alokacja pamięci nie powiodła się lub jeśli żądany rozmiar był większy niż _HEAP_MAXREQ
. Aby uzyskać więcej informacji na temat errno
programu , zobaczerrno
, _doserrno
, _sys_errlist
i _sys_nerr
. _aligned_recalloc
Ponadto weryfikuje jego parametry. Jeśli alignment
nie jest mocą 2, ta funkcja wywołuje nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, ta funkcja zwraca NULL
i ustawia wartość errno
.EINVAL
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_aligned_recalloc |
<malloc.h> |