Freigeben über


_aligned_offset_recalloc

Ändert die Größe eines Speicherblocks, der mit _aligned_malloc oder _aligned_offset_malloc zugeordnet wurde und initialisiert den Arbeitsspeicher von 0.

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

Parameter

  • memblock
    Der aktuelle Speicherblockzeiger.

  • num
    Anzahl der Elemente.

  • size
    Länge in Bytes jedes Elements.

  • 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 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_recalloc 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_recalloc mit einem Offset innerhalb der Struktur ausgerichtet sind, Struktur.

_aligned_offset_recalloc 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 wenn die angeforderte Größe (num * size) ist größer als _HEAP_MAXREQ ist. Weitere Informationen zu errno finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr. Darüber hinaus überprüft _aligned_offset_recalloc auch die eigenen Parameter. Wenn alignment keine Potenz von 2 ist, oder wenn offset größer oder gleich die angeforderte Größe und den Wert ungleich 0 ist, Aufrufe dieser Funktion Parameterhandler der ungültige, 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_recalloc

<malloc.h>

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Datenausrichtung

_recalloc

_aligned_recalloc