Freigeben über


_recalloc_dbg

Teilt ein Array neu und initialisiert deren Elemente bis 0 (nur Debugversion).

void *_recalloc_dbg( 
   void *userData,
   size_t num,
   size_t size,
   int blockType,
   const char *filename,
   int linenumber 
);

Parameter

  • userData
    Ein Zeiger auf das zuvor belegten Speicherblock.

  • num
    Angeforderte viele Speicherblöcke.

  • size
    Die angeforderte Größe eines Speicherblocks (Bytes).

  • blockType
    Angeforderter Typ des Speicherblocks: _CLIENT_BLOCK oder _NORMAL_BLOCK.

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

  • filename
    Ein Zeiger auf den Namen der Quelldatei, die NULLoder - Vorgang Zuordnungen angefordert hat.

  • linenumber
    Zeilennummer in der Quelldatei, in der NULLoder Operation Zuordnungen angefordert wurde.

Die filename und linenumber-Parameter sind nur verfügbar, wenn _recalloc_dbg explizit aufgerufen wurde oder die _CRTDBG_MAP_ALLOC Präprozessor konstante definiert wurde.

Rückgabewert

Bei erfolgreichem Abschluss gibt diese Funktion entweder einen Zeiger auf den neu des Benutzers zugeteilten Speicherblocks zurück, ruft die neue Handlerfunktion veranschaulicht, oder gibt NULL zurück.Eine vollständige Beschreibung des Verhaltens zurückgeben, finden Sie im folgenden Abschnitt " Hinweise ".Weitere Informationen darüber, wie die neue Handlerfunktion verwendet wird, finden Sie unter der _recalloc-Funktion.

Hinweise

_recalloc_dbg ist eine Debugversion der _recalloc-Funktion.Wenn _DEBUG nicht definiert ist, wird jeder Aufruf von _recalloc_dbg zu einem Aufruf von _recallocreduziert._recalloc teilen und _recalloc_dbg Basisheap einen Speicherblock im neu zu _recalloc_dbg bringt jedoch einige Debugfunktionen unter: 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.

_recalloc_dbg weist den angegebenen Speicherblock mit etwas mehr Platz als die angeforderte Größe neu (*) sizenum die möglicherweise größer oder kleiner als die Größe des belegten Speicherblocks ursprünglich sein.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.Die ergäbe Neuzuordnung kann das Verschieben des ursprünglichen Speicherblocks an einen anderen Speicherort im Heap als auch beim Ändern der Größe des Speicherblocks.Der Benutzer des Blocks wird mit dem Wert 0xCD gefüllt und jeder der überschreibens Puffer werden mit 0xFD gefüllt.

_recalloc_dbg legt diesen fest ENOMEM zu errno , wenn eine Speicherbelegung fehlschlägt. EINVAL wird zurückgegeben, 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.

Weitere Informationen zum Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Speicherverwaltung und Debugheap.Weitere Informationen über die Unterschiede zwischen den Aufrufen einer Funktion heap Standard für die Debugversion in einem Debugbuild einer Anwendung finden Sie unter Verwenden der Debugversion für die Grundversion.

Anforderungen

Routine

Erforderlicher Header

_recalloc_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