Freigeben über


_aligned_malloc_dbg

Belegt in einer integralen angegebenen Grenzwert mit zusätzlichem Speicher für einen Header des Debuggens Speicherung und überschreibt Puffer (nur Debugversion).

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

Parameter

  • [in] size
    Größe der angeforderten Speicherbelegung.

  • [in] alignment
    Der Ausrichtungswert, der eine integrale Potenz von 2 sein muss.

  • [in] filename
    Ein Zeiger auf den Namen der Quelldatei, die den angeforderten Vorgang Zuordnung oder NULL.

  • [in] linenumber
    Zeilennummer in der Quelldatei, in der der angeforderte Vorgang für Zuordnungen oder NULL war.

Rückgabewert

Ein Zeiger auf den Speicherblock, der NULL oder wenn der fehlgeschlagenen Vorgang zugeordnet wurde.

Hinweise

_aligned_malloc_dbg ist eine Debugversion der _aligned_malloc-Funktion.Wenn _DEBUG nicht definiert ist, wird jeder Aufruf von _aligned_malloc_dbg zu einem Aufruf von _aligned_mallocreduziert._aligned_malloc anordnen und _aligned_malloc_dbg einen Speicherblock im Basisheap auf, aber _aligned_malloc_dbg bietet mehrere Debugfeatures an: Puffer auf beiden Seiten des Benutzers Teils des Blocks für Verluste zu testen und filename/linenumber Informationen, wenn der Ursprung der Anforderungen für Zuordnungen zu bestimmen.

_aligned_malloc_dbg ordnet den Speicherblock mit etwas mehr Platz als angeforderte size.Das zusätzliche Speicherplatz wird vom Debugheap Manager, um die Programmdebuginformationen Speicherblöcke zu verknüpfen und die Anwendung bereitzustellen und Debuggen mit Headerinformationen Puffer zu überschreiben.Wenn der Block zugeordnet ist, wird der Benutzer des Blocks mit dem Wert 0xCD gefüllt und jeder der überschreibens Puffer werden mit 0xFD gefüllt.

_aligned_malloc_dbg legt diesen fest ENOMEM zu errno , wenn eine Speicherbelegung fehlschlägt, oder wenn der Arbeitsspeicher benötigt wird (einschließlich Mehraufwand bereits erwähnt) _HEAP_MAXREQüberschreitet.Weitere Informationen zu diesem und anderen Fehlercodes finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.Außerdem _aligned_malloc_dbg überprüft seine Parameter.Wenn keine alignment Potenz von 2 ist oder size null ist, Aufrufe dieser Funktion der ungültige Parameter für, wie in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, gibt diese Funktion NULL zurück und legt ihn fest. EINVALzu errno

Weitere Informationen zum Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Speicherverwaltung und Debugheap.

Weitere Informationen zu den Typen von Zuordnungen blocks und wie diese verwendet werden, finden Sie unter Blocktypen auf dem Debugheap.

Anforderungen

Routine

Erforderlicher Header

_aligned_malloc_dbg

<crtdbg.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Bibliotheken

Debugversionen von nur C .

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Debug- Routinen