Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Procedury debugowania