_aligned_offset_malloc_dbg
Belegt Speicher in einer angegebenen Ausrichtungsgrenze (nur Debugversion).
Syntax
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parameter
size
Die Größe der angeforderten Speicherbelegung.
alignment
Der Ausrichtungswert, der eine ganzzahlige Potenz von 2 sein muss.
offset
Der Offset in der Speicherbelegung zum Erzwingen der Ausrichtung.
filename
Zeiger auf den Namen der Quelldatei, die die Belegung angefordert hat, oder NULL
.
linenumber
Zeilennummer in der Quelldatei, in der die Belegung angefordert wurde, oder NULL
.
Rückgabewert
Ein Zeiger zum Speicherblock, der belegt wurde, oder NULL
bei fehlgeschlagenem Vorgang.
Hinweise
_aligned_offset_malloc_dbg
ist eine Debugversion der _aligned_offset_malloc
Funktion. Wenn _DEBUG
sie nicht definiert ist, wird jeder Anruf _aligned_offset_malloc_dbg
auf einen Anruf reduziert _aligned_offset_malloc
. Sowohl _aligned_offset_malloc
als auch _aligned_offset_malloc_dbg
belegen einen Speicherblock im Basisheap, jedoch bietet _aligned_offset_malloc_dbg
mehrere Debugfunktionen, z.B. Puffer auf beiden Seiten des Benutzerteils des Blocks zum Prüfen auf Speicherverluste und filename
/linenumber
-Informationen zum Ermitteln des Ursprungs von Belegungsanforderungen. 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_offset_malloc_dbg
belegt den Speicherblock mit etwas mehr Speicherplatz als der angeforderten size
. 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. Wenn der Block zugewiesen wird, wird der Benutzerteil des Blocks mit dem Wert 0xCD gefüllt, und jeder der Überschreibpuffer wird mit 0xFD gefüllt.
_aligned_offset_malloc_dbg
ist nützlich in Situationen, in denen eine Ausrichtung für ein geschachteltes Element erforderlich ist, beispielsweise wenn eine Ausrichtung für eine geschachtelte Klasse erforderlich war.
_aligned_offset_malloc_dbg
basiert auf malloc
; weitere Informationen finden Sie unter malloc
.
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_errlist
und _sys_nerr
. Darüber hinaus überprüft _aligned_offset_malloc
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 size
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.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_aligned_offset_malloc_dbg |
<crtdbg.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Libraries
Nur Debugversionen von C-Laufzeitbibliotheken