_realloc_dbg

Reallocates podany blok pamięci w stercie przez przenoszenie lub zmiana rozmiaru bloku (tylko wersja debugowania).

void *_realloc_dbg(
   void *userData,
   size_t newSize,
   int blockType,
   const char *filename,
   int linenumber 
);

Parametry

  • userData
    Wskaźnik bloku wcześniej alokacji pamięci.

  • newSize
    Zgłoszony rozmiar bloku reallocated (w bajtach).

  • blockType
    Zażądał typu dla bloku reallocated: _CLIENT_BLOCK lub _NORMAL_BLOCK.

  • filename
    Wskaźnik myszy na nazwę pliku źródłowego, który zażądał realloc operacji lub wartość NULL.

  • linenumber
    Numer wiersza na plik źródłowy gdzie realloc operacji został zgłoszony ani mieć wartości NULL.

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

Wartość zwracana

Po pomyślnym zakończeniu ta funkcja zwraca wskaźnik do części użytkownika blok pamięci reallocated, wywołuje funkcję obsługi nowego albo zwraca wartość NULL.Pełny opis zachowania zwrotu zobacz następującą sekcję Spostrzeżenia.Aby uzyskać więcej informacji dotyczących korzystania z nowych funkcji obsługi, zobacz realloc funkcji.

Uwagi

_realloc_dbgjest w wersji debugowej, z realloc funkcji.Gdy _DEBUG nie jest zdefiniowana, każde wywołanie _realloc_dbg jest ograniczona do wywołania realloc.Zarówno realloc i _realloc_dbg ponownie przydzielić bloku pamięci w stercie bazowy, ale _realloc_dbg może pomieścić kilka funkcji debugowania: buforów po obu stronach użytkownika część bloku do testowania na przecieki, parametr typu bloku do śledzenia typy szczególny przydział i filename/linenumber informacji do ustalenia pochodzenia żądania alokacji.

_realloc_dbgblok pamięci określony z nieco większej ilości miejsca niż żądanego reallocates newSize.newSizemoże być większa lub mniejsza niż rozmiar bloku pierwotnie alokacji pamięci.Dodatkowe miejsce jest używany przez menedżera sterty debugowania łączenie bloków pamięci debugowania, a także zapewnić informacje nagłówka debugowania aplikacji i zastąpić buforów.Ponowny przydział może spowodować przeniesienie do innej lokalizacji w stosie oryginalny blok pamięci, a także zmiana rozmiaru bloku pamięci.Jeśli blok pamięci jest przenoszony, zawartość oryginalnego bloku są zastępowane.

_realloc_dbgUstawia errno do ENOMEM Jeśli alokacja pamięci nie powiedzie się lub jeśli przekracza ilość pamięci potrzebnej (w tym narzut wymienionych wcześniej) _HEAP_MAXREQ.Aby uzyskać informacje o tym i innych kodach błędów, zobacz errno, _doserrno, _sys_errlist, and _sys_nerr.

Aby uzyskać informacje na temat sposobu, w jaki bloki pamięci są przydzielane, inicjowane i zarządzane w wersji debugowania podstawowej sterty, zobacz Szczegóły dotyczące stosu debugowania CRT.Aby uzyskać informacji na temat typów bloku alokacji i sposobu ich używania, zobacz typów bloków na stercie debugowania.Aby uzyskać informacje dotyczące różnic między wywołaniem funkcji standardowych sterty i jej wersję programu debug w kompilacja do debugowania aplikacji, zobacz Wersja debugowania funkcji alokacji stosu.

Wymagania

Procedura

Wymagany nagłówek

_realloc_dbg

<crtdbg.h>

Aby uzyskać więcej informacji na temat zgodności, zobacz Zgodność we Wstępie.

Biblioteki

Debuguj wersje wyłącznie Bibliotek uruchomieniowych C.

Przykład

Zobacz przykład w _msize_dbg tematu.

Odpowiednik w programie .NET Framework

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

Zobacz też

Informacje

Procedury debugowania

_malloc_dbg