Freigeben über


_aligned_malloc_dbg

Belegt einen Speicherblock in einer angegebenen Ausrichtungsgrenze mit zusätzlichem Speicherplatz für einen Debugheader und Überschreibungspuffer (nur Debugversion).

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

Parameter

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

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

  • [in] filename
    Zeiger zum Namen der Quelldatei, der die Belegung angefordert hat, oder NULL.

  • [in] 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 nicht definiert ist, wird jeder Aufruf von _aligned_malloc_dbg zu einem Aufruf von _aligned_malloc reduziert. 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.

_aligned_malloc_dbg belegt den Speicherblock mit etwas mehr Speicherplatz als der angeforderten size. Der zusätzliche Speicherplatz wird vom Debugheapmanager verwendet, um die Debugspeicherblöck zu verknüpfen und Debugheaderinformationen und Überschreibungspuffer für die Anwendung bereitzustellen. Wenn der Block belegt wurde, wird der Benutzerteil des Blocks mit dem Wert "0xCD" gefüllt, und jeder der Überschreibungspuffer 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 errno, _doserrno, _sys_errlist und _sys_nerr. Darüber hinaus überprüft _aligned_malloc_dbg auch die eigenen Parameter. Wenn alignment keine Potenz von 2 oder size ist, ruft diese Funktion den Handler für ungültige Parameter auf, wie unter Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL zurück und stellt errno auf NULL ein.

Informationen darüber, wie Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Details zum CRT-Debugheap. Weitere Informationen zu den Zuordnungsblocktypen und ihrer Verwendung finden Sie unter Blocktypen auf dem Debugheap. Weitere Informationen zu den Unterschieden zwischen dem Aufruf einer Standardheapfunktion und der Debugversion in einem Debugbuild einer Anwendung finden Sie unter Debugversionen von Heapreservierungsfunktionen.

Anforderungen

Routine

Erforderlicher Header

_aligned_malloc_dbg

<crtdbg.h>

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

Bibliotheken

Nur Debugversionen von C-Laufzeitbibliotheken.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Debugroutinen