_aligned_offset_realloc
Zmienia rozmiar bloku pamięci, która została przydzielona z _aligned_malloc lub _aligned_offset_malloc.
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parametry
memblock
Bieżący wskaźnik bloku pamięci.size
Rozmiar alokacji pamięci.alignment
Wartość wyrównania musi być całkowitą potęgą liczby 2.offset
Przesunięcie w alokacji pamięci, aby wymusić wyrównanie.
Wartość zwracana
_aligned_offset_reallocZwraca void wskaźnik do bloku pamięci reallocated (i ewentualnie przeniesiony).Zwracana jest wartość NULL , jeśli rozmiar jest zero, a argument bufor nie jest NULL, lub jeśli jest za mało dostępnej pamięci, aby rozwinąć bloku do podanego rozmiaru.W pierwszym przypadku oryginalnego bloku jest zwalniana.W drugim przypadku oryginalnego bloku jest bez zmian.Zwracana wartość wskazuje miejsce w magazynie jest gwarantowane zostały odpowiednio dostosowane do przechowywania dowolnego typu obiektu.Aby uzyskać wskaźnika typu innego niż void, typ, oddanych na wartości zwracanej.
_aligned_offset_reallocjest oznaczony jako __declspec(noalias) i __declspec(restrict), co oznacza, że funkcja zagwarantowane jest nie do modyfikacji zmiennych globalnych, i że zwrócony wskaźnik nie jest aliasu.Aby uzyskać więcej informacji, zobacz noalias i ograniczyć.
Uwagi
Podobnie jak _aligned_offset_malloc, _aligned_offset_realloc umożliwia struktury wyrównania przesunięcia w ramach struktury.
_aligned_offset_reallocjest oparta na malloc.Aby uzyskać więcej informacji na temat za pomocą _aligned_offset_malloc, zobacz malloc.Jeśli memblock jest NULL, wywołania funkcji _aligned_offset_malloc wewnętrznie.
Ta funkcja ustawia errno do ENOMEM czy alokacja pamięci nie powiodła się, czy żądany rozmiar był większy niż _HEAP_MAXREQ.Aby uzyskać więcej informacji o errno, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.Ponadto _aligned_offset_realloc sprawdza poprawność jego parametry.Jeśli alignment nie jest potęgą liczby 2 lub jeśli offset jest większa niż lub równa size i różną od zera, funkcja ta wywołuje obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie mogą w dalszym ciągu, funkcja ta zwraca NULL i ustawia errno do EINVAL.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Przykład
Aby uzyskać więcej informacji, zobacz _aligned_malloc.