_malloc_dbg_malloc_dbg

Belegt einen Speicherblock im Heap mit zusätzlichem Speicherplatz für einen Debugheader und Überschreibungspuffern (nur Debugversion).Allocates a block of memory in the heap with additional space for a debugging header and overwrite buffers (debug version only).

SyntaxSyntax

void *_malloc_dbg(
   size_t size,
   int blockType,
   const char *filename,
   int linenumber
);

ParameterParameters

sizesize
Angeforderte Größe des Speicherblocks (Bytes).Requested size of the memory block (in bytes).

blockTypeblockType
Angeforderter Typ des Speicherblocks: _CLIENT_BLOCK oder _NORMAL_BLOCK.Requested type of the memory block: _CLIENT_BLOCK or _NORMAL_BLOCK.

filenamefilename
Zeiger auf den Namen der Quelldatei, die den Zuordnungs Vorgang angefordert hat, oder null.Pointer to the name of the source file that requested the allocation operation or NULL.

linenumberlinenumber
Zeilennummer in der Quelldatei, in der der Zuordnungs Vorgang angefordert wurde, oder null.Line number in the source file where the allocation operation was requested or NULL.

Die Parameter " filename " und " LineNumber " sind nur verfügbar, wenn " _malloc_dbg " explizit aufgerufen wurde oder die _CRTDBG_MAP_ALLOC -präprozessorkonstante definiert wurde.The filename and linenumber parameters are only available when _malloc_dbg has been called explicitly or the _CRTDBG_MAP_ALLOC preprocessor constant has been defined.

RückgabewertReturn Value

Nach erfolgreichem Abschluss gibt diese Funktion einen Zeiger auf den Benutzer Teil des belegten Speicherblocks zurück, ruft die neue Handlerfunktion auf oder gibt nullzurück.On successful completion, this function returns a pointer to the user portion of the allocated memory block, calls the new handler function, or returns NULL. Eine vollständige Beschreibung des Rückgabeverhaltens finden Sie im folgenden Abschnitt "Hinweise".For a complete description of the return behavior, see the following Remarks section. Weitere Informationen zur Verwendung der neuen Handlerfunktion finden Sie unter der malloc-Funktion.For more information about how the new handler function is used, see the malloc function.

HinweiseRemarks

_malloc_dbg ist eine Debugversion der malloc -Funktion._malloc_dbg is a debug version of the malloc function. Wenn _DEBUG nicht definiert ist, wird jeder _malloc_dbg -Rückruf auf einen malloc-Aufrufwert reduziert.When _DEBUG is not defined, each call to _malloc_dbg is reduced to a call to malloc. Sowohl malloc als auch _malloc_dbg weisen einen Speicherblock im Basisheap zu, aber _malloc_dbg bietet mehrere Debugfunktionen: Puffer auf beiden Seiten des Benutzer Teils des Blocks zum Prüfen auf Speicher Verluste, einen Blocktyp Parameter zum Nachverfolgen bestimmte Zuordnungs Typen und Dateiname/-LineNumber -Informationen, um den Ursprung von Zuordnungs Anforderungen zu bestimmen.Both malloc and _malloc_dbg allocate a block of memory in the base heap, but _malloc_dbg offers several debugging features: buffers on either side of the user portion of the block to test for leaks, a block type parameter to track specific allocation types, and filename/linenumber information to determine the origin of allocation requests.

_malloc_dbg ordnet den Speicherblock mit etwas mehr Speicherplatz als die angeforderte Größezu._malloc_dbg allocates the memory block with slightly more space than the requested 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.The additional space is used by the debug heap manager to link the debug memory blocks and to provide the application with debug header information and overwrite buffers. 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.When the block is allocated, the user portion of the block is filled with the value 0xCD and each of the overwrite buffers are filled with 0xFD.

_malloc_dbg legt errno auf ENOMEM fest, wenn eine Speicher Belegung fehlschlägt oder wenn der benötigte Speicherplatz (einschließlich des bereits erwähnten Mehraufwands) _HEAP_MAXREQüberschreitet._malloc_dbg sets errno to ENOMEM if a memory allocation fails or if the amount of memory needed (including the overhead mentioned previously) exceeds _HEAP_MAXREQ. Informationen hierzu und über andere Fehlercodes finden Sie unter errno, _doserrno, _sys_errlist and _sys_nerr.For information about this and other error codes, see errno, _doserrno, _sys_errlist, and _sys_nerr.

Informationen über die Belegung, Initialisierung und Verwaltung der Speicherblöcke in der Debugversion des Basisheaps finden Sie unter Details zum CRT-Debugheap.For information about how memory blocks are allocated, initialized, and managed in the debug version of the base heap, see CRT Debug Heap Details. Informationen zu den Belegungsblocktypen und ihrer Verwendung finden Sie unter Blocktypen auf dem Debugheap.For information about the allocation block types and how they are used, see Types of blocks on the debug heap. Weitere Informationen zu den Unterschieden zwischen dem Aufruf einer Standardheapfunktion und ihrer Debugversion in einem Debugbuild einer Anwendung finden Sie unter Debugversionen von Heapbelegungsfunktionen.For information about the differences between calling a standard heap function and its debug version in a debug build of an application, see Debug Versions of Heap Allocation Functions.

AnforderungenRequirements

-Routine zurückgegebener WertRoutine Erforderlicher HeaderRequired header
_malloc_dbg_malloc_dbg <crtdbg.h><crtdbg.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.For more compatibility information, see Compatibility.

BibliothekenLibraries

Nur Debugversionen von C-Laufzeitbibliotheken.Debug versions of C run-time libraries only.

BeispielExample

Ein Beispiel für die Verwendung von _malloc_dbgfinden Sie unter crt_dbg1.For a sample of how to use _malloc_dbg, see crt_dbg1.

Siehe auchSee also

DebugroutinenDebug Routines
mallocmalloc
_calloc_dbg_calloc_dbg