Udostępnij za pośrednictwem


_CrtIsMemoryBlock

Sprawdza, czy blok pamięci określony jest w lokalna sterta i że ma identyfikator typu bloku sterty prawidłowe debugowania (tylko wersja debugowania).

int _CrtIsMemoryBlock( 
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *linenumber 
);

Parametry

  • [in] userData
    Wskaźnik na początku bloku pamięci do sprawdzenia.

  • [in] size
    Rozmiar określonego bloku (w bajtach).

  • [poza] requestNumber
    Wskaźnik liczby alokacji bloku lub NULL.

  • [poza] filename
    Wskaźnik myszy na nazwę pliku źródłowego, który zażądał bloku lub NULL.

  • [poza] linenumber
    Wskaźnik, aby numer wiersza w pliku źródłowym lub NULL.

Wartość zwracana

_CrtIsMemoryBlockZwraca TRUE Jeśli blok pamięci określony znajduje się w stercie lokalnych i ma identyfikator typu bloku sterty debugowania prawidłowy; w przeciwnym razie funkcja zwraca FALSE.

Uwagi

_CrtIsMemoryBlock Funkcja weryfikuje, że blok pamięci określony jest umieszczony w lokalnej pamięci i czy jest identyfikatorem typu prawidłowe bloku.Tej funkcji można również uzyskać numer obiektu alokacji zlecenia i numer wiersz/nazwy pliku źródłowego, gdzie alokacji blok pamięci był pierwotnie żądany.Przekazanie wartości inne niż NULL requestNumber, filename, lub linenumber przyczyn parametry _CrtIsMemoryBlock zestaw tych parametrów do wartości w nagłówku debugowania blok pamięci, jeśli znajdzie bloku w lokalna sterta.Gdy _DEBUG nie jest zdefiniowana, wzywa do _CrtIsMemoryBlock są usuwane podczas przetwarzania wstępnego.

Jeśli _CrtIsMemoryBlock się nie powiedzie, zwraca FALSE i wartości domyślne są inicjowane parametry wyjściowe: requestNumber i lineNumber są ustawione na 0 i filename jest ustawiona na NULL.

Ponieważ ta funkcja zwraca TRUE lub FALSE, mogą być przekazywane do jednego z _ASSERT makra, aby utworzyć prosty błąd debugowania mechanizmu obsługi.Poniższy przykład powoduje błąd potwierdzenia, jeśli podany adres nie jest umieszczony w lokalnym stosu:

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber, 
&filename, &linenumber ) );

Aby uzyskać więcej informacji o tym, jak _CrtIsMemoryBlock może być używany z innymi funkcjami debugowania i makr, zobacz Makra raportowania.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.

Wymagania

Procedura

Wymagany nagłówek

_CrtIsMemoryBlock

<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 dla _CrtIsValidHeapPointer 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