_aligned_offset_realloc
Ändert die Größe eines Speicherblocks, der zugeordnet _aligned_malloc
wurde, oder _aligned_offset_malloc
.
Syntax
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parameter
memblock
Der Zeiger auf den aktuellen Speicherblock.
size
Die Größe der Speicherbelegung.
alignment
Der Ausrichtungswert, der eine ganzzahlige Potenz von 2 sein muss.
offset
Der Offset in der Speicherbelegung zum Erzwingen der Ausrichtung.
Rückgabewert
_aligned_offset_realloc
gibt einen leeren Zeiger auf den neu belegten (und möglicherweise verschobenen) Speicherblock zurück. Der Rückgabewert ist NULL
, wenn die Größe null ist und das Pufferargument nicht NULL
vorhanden ist, oder wenn nicht genügend Arbeitsspeicher verfügbar ist, um den Block auf die angegebene Größe zu erweitern. Im ersten Fall wird der ursprüngliche Block freigegeben. Im zweiten Fall wird der ursprüngliche Block nicht geändert. Der Rückgabewert verweist auf einen Speicherplatz, der für die Speicherung eines beliebigen Objekttyps entsprechend ausgerichtet ist. Um einen Zeiger auf einen anderen Typ als void
zurückzugeben, verwenden Sie eine Typumwandlung für den Rückgabewert.
_aligned_offset_realloc
ist markiert __declspec(noalias)
und __declspec(restrict)
bedeutet, dass die Funktion garantiert nicht globale Variablen ändert und dass der zurückgegebene Zeiger nicht aliast ist. Weitere Informationen finden Sie unter noalias
und restrict
.
Hinweise
Wie _aligned_offset_malloc
, _aligned_offset_realloc
ermöglicht es einer Struktur, an einem Offset innerhalb der Struktur ausgerichtet zu werden.
_aligned_offset_realloc
ist auf malloc
basiert. Weitere Informationen zur Verwendung von _aligned_offset_malloc
finden Sie unter malloc
. Wenn memblock
NULL
ist, ruft die Funktion _aligned_offset_malloc
intern auf.
Diese Funktion legt errno
auf ENOMEM
fest, wenn die Speicherbelegung fehlgeschlagen ist oder die angeforderte Größe größer als _HEAP_MAXREQ
war. Weitere Informationen zu errno
, sieheerrno
, , _doserrno
, _sys_errlist
und _sys_nerr
. Darüber hinaus überprüft _aligned_offset_realloc
auch die eigenen Parameter. Wenn alignment
es sich nicht um eine Potenz von 2 handelt oder offset
ungleich Null und größer als oder gleich size
ist, ruft diese Funktion den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL
zurück und stellt errno
auf EINVAL
ein.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Beispiel
Weitere Informationen finden Sie unter _aligned_malloc
.