_aligned_offset_recalloc
Ändert die Größe eines Speicherblocks, der _aligned_malloc oder _aligned_offset_malloc zugeordnet wurde, und initialisiert den Arbeitsspeicher bis 0.
void * _aligned_offset_recalloc(
void *memblock,
size_t num,
size_t size,
size_t alignment,
size_t offset
);
Parameter
memblock
Der aktuelle Zeiger Speicherblock.num
Anzahl von Elementen.size
Länge in Byte) der einzelnen Elemente.alignment
Der Ausrichtungswert, der eine integrale Potenz von 2 sein muss.offset
Der Offset in die Speicherbelegung, um die Ausrichtung zu erzwingen.
Rückgabewert
_aligned_offset_recalloc gibt einen void-Zeiger auf den neu zugeteilten (und ggf. verschoben) Speicherblock zurück.Der Rückgabewert ist NULL , wenn die Größe des Puffers - Argument ist und nicht NULList oder wenn nicht genügend verfügbaren Arbeitsspeicher vorhanden ist, um die angegebene Größe des Blocks zu erweitern.Im ersten Fall wird der ursprüngliche Block freigegeben.Im zweiten Fall ist der ursprüngliche Block unverändert.Der Rückgabewert zeigt auf ein garantiert der Speicherplatz zum Speichern eines beliebigen Typs Objekt ordnungsgemäß ausgerichtet werden soll.Um einen Zeiger auf einen anderen Typ als void abzurufen, verwenden Sie eine Typumwandlung im Rückgabewert.
_aligned_offset_recalloc ist als __declspec(noalias) und **__declspec(restrict)**und bedeutet, dass die Funktion nicht garantiert globale Variablen ändern und dass der zurückgegebene Zeiger nicht mit einem Alias versehene.Weitere Informationen finden Sie unter noalias und Beschränken Sie ein.
Hinweise
Wie _aligned_offset_mallocermöglicht eine _aligned_offset_recalloc bei einem Offset innerhalb der Struktur angeordnet sein - Struktur.
_aligned_offset_recalloc basiert auf malloc.Weitere Informationen zur Verwendung von _aligned_offset_mallocfinden Sie unter malloc.Wenn memblockNULL, ist die Funktion _aligned_offset_malloc intern.
Diese Funktion legt errno zu ENOMEM wenn die Speicherbelegung fehlgeschlagen fest oder wenn die angeforderte Größe (num * size) größer als _HEAP_MAXREQwar.Weitere Informationen zu errno finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.Außerdem _aligned_offset_recalloc überprüft seine Parameter.Wenn keine alignment Potenz von 2 ist oder wenn offset größer oder gleich der angeforderten Größe und Wert ungleich 0 (null) ist, Aufrufe dieser Funktion der ungültige Parameter für, wie in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, gibt diese Funktion NULL zurück und legt ihn fest. EINVALzu errno
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_aligned_offset_recalloc |
<malloc.h> |
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.