_aligned_offset_realloc

Ändert die Größe eines Speicherblocks, der mit _aligned_malloc oder _aligned_offset_malloc zugeordnet wurde.

void * _aligned_offset_realloc(
   void *memblock, 
   size_t size, 
   size_t alignment,
   size_t offset
);

Parameter

  • memblock
    Der aktuelle Speicherblockzeiger.

  • 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 ein void-Zeiger zum neu zugeordnete (und möglicherweise bewegt) Speicherblock zurück. Der Rückgabewert ist NULL, wenn die Größe (null und das Pufferargument nicht NULL ist oder wenn nicht genügend verfügbarer Speicher gibt, z des Blocks der angegebenen Größe zu erweitern. Im ersten Fall wird der erste Block freigegeben. Im zweiten Fall ist der erste Block unverändert. Der Rückgabewert zeigt auf einem Speicherplatz, der garantiert wird, zum Speichern eines beliebigen Typs Objekt ordnungsgemäß ausgerichtet sind. Um einen Zeiger auf einen anderen Typ als void abzurufen, verwenden Sie eine Typumwandlung für den Rückgabewert.

_aligned_offset_realloc ist als __declspec(noalias) gekennzeichnet und __declspec(restrict) heißt, dass die Funktion, die gewährleistet sind globale Variablen nicht zu ändern und der zurückgegebene Zeiger nicht von Alias-. Weitere Informationen finden Sie unter noalias und Einschränken ein.

Hinweise

Wie _aligned_offset_malloc können eine _aligned_offset_realloc mit einem Offset innerhalb der Struktur ausgerichtet sind, Struktur.

_aligned_offset_realloc basiert auf malloc. Weitere Informationen zum Verwenden von _aligned_offset_malloc, finden Sie unter malloc. Wenn memblockNULL ist, die Funktionsaufrufe _aligned_offset_malloc intern.

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 finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr. Darüber hinaus überprüft _aligned_offset_realloc auch die eigenen Parameter. Wenn alignment keine Potenz von 2 ist oder offset größer als oder gleich size und ungleich 0 ist, ruft diese Funktion den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL zurück und stellt errno auf EINVAL ein.

Anforderungen

Routine

Erforderlicher Header

_aligned_offset_realloc

<malloc.h>

Beispiel

Weitere Informationen finden Sie unter _aligned_malloc.

Siehe auch

Referenz

Datenausrichtung