Udostępnij za pośrednictwem


_recalloc_dbg

Tablica reallocates i inicjuje jego elementy na 0 (tylko wersja debugowania).

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

Parametry

  • userData
    Wskaźnik do bloku pamięci poprzednio przydzielona.

  • num
    Żądana liczba bloków pamięci.

  • size
    Żądana rozmiar każdego bloku pamięci (w bajtach).

  • blockType
    Żądanie typu blok pamięci: _CLIENT_BLOCK lub _NORMAL_BLOCK.

    Informacje o alokacji typów bloku i w jaki sposób są używane, zobacz Typów bloków na stercie debugowania.

  • filename
    Wskaźnik do nazwy pliku źródłowego, który zażądał operacji alokacji lub NULL.

  • linenumber
    Numer w pliku źródłowym, jeżeli zażądano operacji alokacji lub NULL.

filename i linenumber parametry są dostępne tylko podczas _recalloc_dbg został wywołany jawnie lub _CRTDBG_MAP_ALLOC preprocesora stała została zdefiniowana.

Wartość zwracana

Po pomyślnym zakończeniu funkcja ta zwraca wskaźnik do części użytkownikowi bloku pamięci reallocated, wywołuje funkcję obsługi nowych albo zwraca wartość NULL.Pełny opis zachowanie zwrotu zobacz następującą sekcję Spostrzeżenia.Aby uzyskać więcej informacji o sposobie używania nowych funkcji obsługi, zobacz _recalloc funkcji.

Uwagi

_recalloc_dbgjest w wersji debugowej z _recalloc funkcji.Gdy _DEBUG nie jest zdefiniowana, każde wywołanie _recalloc_dbg jest zredukowana do wywołania _recalloc.Zarówno _recalloc i _recalloc_dbg ponownie przydzielić bloku pamięci w stercie bazowy, ale _recalloc_dbg użytą kilka funkcji debugowania: buforów po obu stronach użytkownika część bloku do badania pod kątem przecieków, parametr typu blok do śledzenia typów określonych alokacji i filename/linenumber informacji do ustalenia pochodzenia żądania alokacji.

_recalloc_dbgreallocates blok pamięci określony nieco większej ilości miejsca niż żądany rozmiar (num * size) który może być większa lub mniejsza niż rozmiar bloku pamięci pierwotnie przyznane.Dodatkowe miejsce jest używany przez menedżera sterty debugowania połączyć bloków pamięci debugowania oraz do zapewnienia stosowania z informacjami nagłówka debugowania i zastąpić buforów.Ponowny przydział może spowodować przeniesienie oryginalnego bloku pamięci do innej lokalizacji na stercie, jak również zmianę rozmiaru bloku pamięci.Część użytkownikowi bloku jest wprowadzana wartość 0x50 i każdego z buforów Zastąp wypełniane są 0xFD.

_recalloc_dbgUstawia errno do ENOMEM Jeśli alokacja pamięci nie powiedzie się; EINVALjest zwracany, jeśli ilość pamięci potrzebnej (w tym napowietrznej wymienionych wcześniej) przekracza _HEAP_MAXREQ.Aby uzyskać informacje na temat tego i innych kodów błędów, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.

Informacje o jak bloków pamięci są przydzielane, zainicjowany i zarządzane w wersji debugowej bazowy sterty, zobacz Zarządzanie pamięcią i debugowania sterty.Aby uzyskać informacje dotyczące różnic pomiędzy wywołaniem funkcji standardowego sterty i jego wersji debugowania w trybie debugowania aplikacji, zobacz przy użyciu wersji kontra Base wersja do debugowania.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_recalloc_dbg

<crtdbg.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Debug wersje biblioteki uruchomieniowej c tylko.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Debugowania procedur