Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sprawdza, czy pamięć określony zakres jest nieprawidłowy dla odczytu i zapisu (tylko w wersji debugowania).
int _CrtIsValidPointer( const void *address, unsigned int size, int access );
Parametry
adres
Wskazuje początek zakresu pamięci do sprawdzenia poprawności.size
Rozmiar zakresu określonego pamięci (w bajtach).dostęp
Dostępność odczytu/zapisu do określenia, czy zakres pamięci.
Wartość zwracana
_CrtIsValidPointerZwraca wartość PRAWDA, jeśli zakres pamięci określony jest nieprawidłowy dla określonej operacji lub operacji.W przeciwnym razie funkcja zwraca wartość FAŁSZ.
Uwagi
_CrtIsValidPointer Funkcja weryfikuje, czy zakres pamięci, począwszy od address i rozszerzenia dla size bajtów jest prawidłowe w przypadku operacji określonego ułatwień dostępu lub operacji.Gdy access jest ustawiona wartość TRUE, zakres pamięci jest weryfikowany zarówno odczytu i zapisu.Gdy access ma wartość FALSE, zakres pamięci walidacji tylko do odczytu.Gdy _DEBUG nie jest zdefiniowany, wywołania _CrtIsValidPointer są usuwane podczas przetwarzania wstępnego.
Ponieważ ta funkcja zwraca wartość PRAWDA lub FAŁSZ, mogą być przekazywane do jednego z _ASSERT makra, aby utworzyć prosty błąd debugowania mechanizm obsługi.Poniższy przykład powoduje błąd potwierdzenia, jeśli zakres pamięci jest nieprawidłowa dla zarówno operacji odczytu i zapisu:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Aby uzyskać więcej informacji o sposobie _CrtIsValidPointer mogą być używane z innych funkcji debugowania i makra, zobacz Makra raportowania.Informacji dotyczących sposobu bloków pamięci są przydzielone, został zainicjowany i zarządzanych w wersji podstawowej stosu debugowania, zobacz Szczegóły dotyczące stosu debugowania CRT.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_CrtIsValidPointer |
< crtdbg.h > |
_CrtIsValidPointerto rozszerzenie firmy Microsoft.Aby uzyskać informacje o zgodności, zobacz zgodności.
Biblioteki
Debugowanie wersje C biblioteki czasu wykonywania tylko.
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łania platformy.