Share via


_aligned_offset_recalloc

Ändert die Größe eines Speicherblocks, der zugewiesen _aligned_malloc wurde, oder _aligned_offset_malloc initialisiert den Speicher auf 0.

Syntax

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

Parameter

memblock
Der Zeiger auf den aktuellen Speicherblock.

number
Anzahl der Elemente.

size
Länge jedes Elements in Bytes.

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_recalloc 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 NULLvorhanden 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 den leeren zurückzugeben, verwenden Sie eine Typumwandlung für den Rückgabewert.

_aligned_offset_recalloc 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_recalloc ermöglicht es einer Struktur, an einem Offset innerhalb der Struktur ausgerichtet zu werden.

_aligned_offset_recalloc ist auf malloc basiert. Weitere Informationen zur Verwendung von _aligned_offset_malloc finden Sie unter malloc. Wenn memblockNULL 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(number * size) größer als _HEAP_MAXREQ war. Weitere Informationen zu errno, sieheerrno , , _doserrno, _sys_errlistund _sys_nerr. Darüber hinaus überprüft _aligned_offset_recalloc auch die eigenen Parameter. Wenn alignment es sich nicht um eine Potenz von 2 handelt oder offset nicht null und größer als oder gleich der angeforderten sizeist, 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. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Anforderungen

Routine Erforderlicher Header
_aligned_offset_recalloc <malloc.h>

Siehe auch

Datenausrichtung
_recalloc
_aligned_recalloc