Freigeben über


_aligned_malloc_dbg

Weist Speicher auf einer angegebenen Ausrichtungsgrenze mit zusätzlichem Speicherplatz für einen Debugheader zu und überschreibt Puffer (nur Debugversion).

Syntax

void * _aligned_malloc_dbg(
    size_t size,
    size_t alignment,
   const char *filename,
   int linenumber
);

Parameter

size
Größe der angeforderten Speicherzuweisung.

alignment
Der Ausrichtungswert, der eine ganzzahlige Potenz von 2 sein muss.

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 NULLbei fehlgeschlagenem Vorgang.

Hinweise

_aligned_malloc_dbg ist eine Debugversion der _aligned_malloc Funktion. Wenn _DEBUG sie nicht definiert ist, wird jeder Anruf _aligned_malloc_dbg auf einen Anruf reduziert _aligned_malloc. Sowohl _aligned_malloc als auch _aligned_malloc_dbg belegen einen Speicherblock im Basisheap, jedoch bietet _aligned_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_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_malloc_dbg legt errno auf ENOMEM fest, wenn eine Speicherbelegung fehlschlägt oder 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_errlistund _sys_nerr.errno Darüber hinaus überprüft _aligned_malloc_dbg auch die eigenen Parameter. Wenn alignment keine Potenz von 2 oder size Null 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_malloc_dbg <crtdbg.h>

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

Libraries

Nur Debugversionen von C-Laufzeitbibliotheken

Siehe auch

Debugroutinen