Freigeben über


_aligned_offset_realloc_dbg

Ändert die Größe eines Speicherblocks, der zugeordnet _aligned_malloc wurde oder _aligned_offset_malloc (nur Debugversion).

Syntax

void * _aligned_offset_realloc_dbg(
   void *memblock,
   size_t size,
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

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.

filename
Zeigen Sie auf den Namen der Quelldatei, die den aligned_offset_realloc Vorgang angefordert hat.NULL

linenumber
Zeilennummer in der Quelldatei, in der der aligned_offset_realloc Vorgang angefordert wurde, oder NULL.

Rückgabewert

_aligned_offset_realloc_dbg 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.

Hinweise

_aligned_offset_realloc_dbg ist eine Debugversion der _aligned_offset_realloc Funktion. Wenn _DEBUG sie nicht definiert ist, wird jeder Anruf _aligned_offset_realloc_dbg auf einen Anruf reduziert _aligned_offset_realloc. Sowohl als auch _aligned_offset_realloc einen Speicherblock im Basishap neu zuordnen, bietet jedoch _aligned_offset_realloc_dbg mehrere Debugfeatures: Puffer auf beiden Seiten des Blocks, um auf Lecks zu testen, und filename/linenumber Informationen, um den Ursprung von Zuordnungsanforderungen zu bestimmen._aligned_offset_realloc_dbg Das Nachverfolgen bestimmter Zuordnungstypen mit einem Blocktypparameter ist kein unterstütztes Debugfeature für ausgerichtete Zuordnungen. Ausgerichtete Zuordnungen werden als _NORMAL_BLOCK Blocktyp angezeigt.

Wie _aligned_offset_malloc, _aligned_offset_realloc_dbg ermöglicht es einer Struktur, an einem Offset innerhalb der Struktur ausgerichtet zu werden.

_realloc_dbg belegt den angegebenen Speicherblock neu mit etwas mehr Speicherplatz als der angeforderten newSize. newSize kann größer oder kleiner sein als die Größe des ursprünglich belegten Speicherblocks. Der zusätzliche Speicherplatz wird vom Debug-Heap-Manager verwendet, um die Debugspeicherblöcke zu verknüpfen und der Anwendung Debugheaderinformationen und Überschreiben von Puffern bereitzustellen. Die Neuverteilung kann den ursprünglichen Speicherblock an eine andere Position im Heap verschieben und auch die Größe des Speicherblocks ändern. Wenn der Speicherblock verschoben wird, wird der Inhalt des ursprünglichen Blocks überschrieben.

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_errlistund _sys_nerr. Darüber hinaus überprüft _aligned_offset_realloc_dbg 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 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.

Informationen dazu, wie Speicherblöcke in der Debugversion des Basis heap zugeordnet, initialisiert und verwaltet werden, finden Sie unter CRT Debug Heap Details. Informationen zu den Zuordnungsblocktypen und deren Verwendung finden Sie unter "Typen von Blöcken" im Debug-Heap. Informationen zu den Unterschieden zwischen Standard heap-Funktionen und deren Debugversionen finden Sie unter Debugversionen von Heap-Zuordnungsfunktionen.

Anforderungen

Routine Erforderlicher Header
_aligned_offset_realloc_dbg <crtdbg.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Bibliotheken

Nur Debugversionen von C-Laufzeitbibliotheken

Siehe auch

Debugroutinen