_realloc_dbg
Reallocates podany blok pamięci w stercie, 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 do bloku pamięci poprzednio przydzielona.newSize
Żądana rozmiar bloku reallocated (w bajtach).blockType
Żądanie typu dla bloku reallocated: _CLIENT_BLOCK lub _NORMAL_BLOCK.filename
Wskaźnik do nazwy pliku źródłowego, który zażądał realloc operacji lub NULL.linenumber
Numer w pliku źródłowym gdzie realloc operacji została żądana ani mieć wartości NULL.
filename i linenumber parametry są dostępne tylko podczas _realloc_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 odśmiecacz funkcji.
Uwagi
_realloc_dbgjest w wersji debugowej z odśmiecacz funkcji.Gdy _DEBUG nie jest zdefiniowana, każde wywołanie _realloc_dbg jest zredukowana do wywołania realloc.Zarówno realloc i _realloc_dbg ponownie przydzielić bloku pamięci w stercie bazowy, ale _realloc_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.
_realloc_dbgreallocates blok pamięci określony nieco większej ilości miejsca niż żądana newSize.newSizemoż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.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 przekracza ilość pamięci potrzebne (w tym napowietrznej wymienionych wcześniej) _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.Informacje o alokacji typów bloku i w jaki sposób są używane, zobacz Typów bloków na stercie debugowania.Aby uzyskać informacje dotyczące różnic między wywołaniem funkcji standardowego sterty i jej wersję debugowania w trybie debugowania aplikacji, zobacz przy użyciu wersji Versus the Base wersja do debugowania.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_realloc_dbg |
<crtdbg.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.
Biblioteki
Debug wersje biblioteki uruchomieniowej c tylko.
Przykład
Zobacz przykład w _msize_dbg tematu.
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.