Udostępnij za pośrednictwem


_CrtIsMemoryBlock

Sprawdza, czy blok pamięci określony jest lokalna sterta i ma identyfikator typu bloku sterty ważne debugowania (tylko wersja debugowania).

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

Parametry

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

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

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

  • [out]filename
    Wskaźnik do nazwy pliku źródłowego, który zażądał bloku lub NULL.

  • [out]linenumber
    Wskaźnik liczby linii w pliku źródłowym lub NULL.

Wartość zwracana

_CrtIsMemoryBlockZwraca TRUE Jeśli blok pamięci określony znajduje się na stercie lokalne i ma identyfikator typu bloku sterty debugowania ważne; w przeciwnym wypadku funkcja zwraca FALSE.

Uwagi

_CrtIsMemoryBlock Funkcja weryfikuje znajduje blok pamięci określony w ramach aplikacji lokalna sterta i ma identyfikator typu ważne bloku.Tej funkcji można również uzyskać numer obiektu alokacji zlecenia i numer źródłowego pliku nazwa/wiersza, gdzie pierwotnie żądany alokacji bloku pamięci.Przekazując wartość różną od NULL dla requestNumber, filename, lub linenumber przyczyn parametry _CrtIsMemoryBlock Aby ustawić parametry te wartości w nagłówku debugowania blok pamięci, jeśli znajdzie bloku w stercie lokalnych.Gdy _DEBUG nie jest zdefiniowana, wzywa do _CrtIsMemoryBlock są usuwane w czasie wstępnego przetwarzania.

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żeli określony adres nie jest umieszczony w lokalnym stosu:

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

Aby uzyskać więcej informacji dotyczących sposobu _CrtIsMemoryBlock może być używany z innymi funkcjami debugowania i makr, zobacz Za pomocą makra dla weryfikacji i sprawozdawczości.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.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_CrtIsMemoryBlock

<crtdbg.h>

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

Biblioteki

Debug wersje biblioteki uruchomieniowej c tylko.

Przykład

Zobacz przykład dla _CrtIsValidHeapPointer 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.

Zobacz też

Informacje

Debugowania procedur