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