Sdílet prostřednictvím


_CrtIsValidPointer

Ověřuje, že ukazatel nemá hodnotu null. Ve verzích knihovny runtime jazyka C před sadou Visual Studio 2010 ověřuje, jestli je zadaný rozsah paměti platný pro čtení a zápis (pouze ladicí verze).

Syntaxe

int _CrtIsValidPointer(
   const void *address,
   unsigned int size,
   int access
);

Parametry

address
Odkazuje na začátek rozsahu paměti a otestuje platnost.

size
Velikost zadaného rozsahu paměti (v bajtech).

access
Usnadnění čtení a zápisu pro určení rozsahu paměti.

Vrácená hodnota

_CrtIsValidPointer vrátí TRUE , pokud zadaný ukazatel nemá hodnotu null. Ve verzích knihovny CRT před sadou Visual Studio 2010 se vrátí TRUE , pokud je rozsah paměti platný pro zadanou operaci nebo operace. V opačném případě funkce vrátí FALSEhodnotu .

Poznámky

V knihovně CRT v sadě Visual Studio 2010 a novějšíchverzích size access _CrtIsValidPointer address Vzhledem k tomu, že se tento test snadno provádí sami, nedoporučujeme tuto funkci používat. Ve verzích před sadou Visual Studio 2010 funkce ověří, že rozsah paměti začínající na address bajtech a rozšíření pro size bajty je platný pro zadanou operaci nebo operace přístupnosti. Pokud access je nastavená hodnota TRUE, je rozsah paměti ověřený pro čtení i zápis. Pokud access je , FALSErozsah paměti je ověřen pouze pro čtení. Pokud _DEBUG není definováno, volání, která _CrtIsValidPointer se mají odebrat během předběžného zpracování.

Vzhledem k tomu, že tato funkce vrací TRUE nebo FALSE, může být předána do jednoho z _ASSERT maker a vytvořit základní mechanismus zpracování chyb ladění. Následující příklad způsobí selhání kontrolního výrazu, pokud oblast paměti není platná pro operace čtení i zápisu:

_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );

Další informace o tom, jak _CrtIsValidPointer se dají použít s dalšími ladicími funkcemi a makry, najdete v tématu Makra pro vytváření sestav. Informace o přidělování, inicializaci a správě bloků paměti ve verzi ladění základní haldy naleznete v podrobnostech haldy ladění CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
_CrtIsValidPointer <crtdbg.h>

_CrtIsValidPointer je rozšíření Microsoftu. Informace o kompatibilitě najdete v tématu Kompatibilita.

Knihovny

Ladění pouze verzí knihoven runtime jazyka C.

Příklad

Podívejte se na příklad _CrtIsValidHeapPointer článku.

Viz také

Rutiny ladění