_aligned_recalloc_dbg
Ändert die Größe eines Speicherblocks, der zugewiesen _aligned_malloc
wurde, oder _aligned_offset_malloc
initialisiert den Speicher auf 0 (nur Debugversion).
Syntax
void * _aligned_recalloc_dbg(
void * memblock,
size_t num,
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parameter
memblock
Der Zeiger auf den aktuellen Speicherblock.
number
Die Anzahl der Elemente.
size
Die Größe jedes Elements in Byte.
alignment
Der Ausrichtungswert, der eine ganzzahlige Potenz von 2 sein muss.
filename
Zeiger zum Namen der Quelldatei, der die Zuordnung angefordert hat, oder NULL
.
linenumber
Zeilennummer in der Quelldatei, in der die Zuordnung angefordert wurde, oder NULL
.
Rückgabewert
_aligned_recalloc_dbg
gibt einen void
-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 NULL
vorhanden 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 void
zurückzugeben, verwenden Sie eine Typumwandlung für den Rückgabewert.
Es ist ein Fehler, Speicher neu zu ordnen und die Ausrichtung eines Blocks zu ändern.
Hinweise
_aligned_recalloc_dbg
ist eine Debugversion der _aligned_recalloc
Funktion. Wenn _DEBUG
sie nicht definiert ist, wird jeder Anruf _aligned_recalloc_dbg
auf einen Anruf reduziert _aligned_recalloc
. Sowohl als auch _aligned_recalloc
einen Speicherblock im Basishap neu zuordnen, bietet jedoch _aligned_recalloc_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_recalloc_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.
_aligned_recalloc_dbg
ordnet den angegebenen Speicherblock mit etwas mehr Speicherplatz als die erforderliche Größe (number
* size
) neu zu, der größer oder kleiner als die Größe des ursprünglich zugeordneten Speicherblocks sein kann. 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 die Größe des Speicherblocks ändern. Der Benutzerteil des Blocks wird mit dem Wert 0xCD gefüllt, und die Überschreibungspuffer werden mit 0xFD gefüllt.
_aligned_recalloc_dbg
legt errno
auf ENOMEM
fest, wenn eine Speicherbelegung fehlschlägt. EINVAL
wird zurückgegeben, wenn der benötigte Speicherplatz (einschließlich des bereits erwähnten Mehraufwands) _HEAP_MAXREQ
überschreitet. Informationen zu diesem und anderen Fehlercodes finden Sie unter , , _doserrno
, _sys_errlist
und _sys_nerr
.errno
Darüber hinaus überprüft _aligned_recalloc_dbg
auch die eigenen Parameter. Wenn alignment
keine Potenz von 2 ist, 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_recalloc_dbg |
<crtdbg.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Nur Debugversionen von C-Laufzeitbibliotheken