_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í FALSE
hodnotu .
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 , FALSE
rozsah 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.