Udostępnij za pośrednictwem


_malloc_dbg

Alokuje blok pamięci w stercie, z dodatkowym miejscem dla nagłówka debugowania i zastąpić buforów (tylko wersja debugowania).

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

Parametry

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

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

  • 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 _malloc_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 przydzielone, wywołuje funkcję obsługi nowych lub 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 malloc funkcji.

Uwagi

_malloc_dbgjest w wersji debugowej z malloc funkcji.Gdy _DEBUG nie jest zdefiniowana, każde wywołanie _malloc_dbg jest zredukowana do wywołania malloc.Zarówno malloc i _malloc_dbg zaalokować blok pamięci w stercie bazowy, ale _malloc_dbg oferuje 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.

_malloc_dbgalokuje blok pamięci, z nieco więcej miejsca niż żądana size.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.Gdy blok jest przydzielone, część użytkownikowi bloku jest wprowadzana wartość 0x50 i każdego z buforów Zastąp wypełniane są 0xFD.

_malloc_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.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_malloc_dbg

<crtdbg.h>

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

Biblioteki

Debug wersje biblioteki uruchomieniowej c tylko.

Przykład

Przykładowy sposób _malloc_dbg, zobacz crt_dbg1.

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

funkcja malloc

_calloc_dbg

_calloc_dbg