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