_aligned_offset_malloc_dbg
Belegt Speicher für eine angegebene Grenze integralen (nur Debugversion).
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parameter
[in] size
Die Größe der angeforderten Speicherbelegung.[in] alignment
Der Ausrichtungswert, der eine integrale Potenz von 2 sein muss.[in] offset
Der Offset in die Speicherbelegung, um die Ausrichtung zu erzwingen.[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 NULLoder wenn der fehlgeschlagenen Vorgang zugeordnet wurde.
Hinweise
_aligned_offset_malloc_dbg ist eine Debugversion der _aligned_offset_malloc-Funktion.Wenn _DEBUG nicht definiert ist, wird jeder Aufruf von _aligned_offset_malloc_dbg zu einem Aufruf von _aligned_offset_mallocreduziert._aligned_offset_malloc anordnen und _aligned_offset_malloc_dbg einen Speicherblock im Basisheap auf, aber _aligned_offset_malloc_dbg bietet mehrere Debugfeatures an: Puffer auf beiden Seiten des Benutzers zu einem Teil des Verlusten Parameter Blockformat, um bestimmte Typen von Zuordnungen zu verfolgen und filename/linenumber Informationen zu testen, Blocks um den Ursprung Zuordnung von Anforderungen zu bestimmen.
_aligned_offset_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_offset_malloc_dbg ist in Situationen nützlich, in denen Ausrichtung in einem geschachtelten Element erforderlich ist. Wenn beispielsweise Ausrichtung auf geschachtelte Klassen benötigt wurde.
_aligned_offset_malloc_dbg basiert auf malloc. Weitere Informationen finden Sie unter malloc.
Diese Funktion legt errno zu ENOMEM wenn die Speicherbelegung fehlgeschlagen fest oder wenn die angeforderte Größe größer als _HEAP_MAXREQwar.Weitere Informationen zu errno finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr.Außerdem _aligned_offset_malloc überprüft seine Parameter.Wenn keine alignment Potenz von 2 ist oder wenn offset größer oder gleich size und Wert ungleich 0 (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_offset_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.