_CrtIsValidPointer
Verifica che l'intervallo di memoria specificato sia valido per lettura e scrittura (solo versione di debug).
int _CrtIsValidPointer( const void *address, unsigned int size, int access );
Parametri
address
Punta all'inizio dell'intervallo di memoria per il test della validità.size
Dimensione dell'intervallo di memoria specificato (in byte).access
Accessibilità in lettura/scrittura da determinare per l'intervallo di memoria.
Valore restituito
_CrtIsValidPointer restituisce TRUE se l'intervallo di memoria specificato è valido per l'operazione o per le operazioni specificate. In caso contrario, la funzione restituisce FALSE.
Note
La funzione _CrtIsValidPointer verifica che l'intervallo di memoria che inizia in address e si estende per size byte sia valido per l'operazione o per le operazioni di accessibilità specificate. Quando access è impostato su TRUE, l'intervallo di memoria viene verificato sia per la lettura che per la scrittura. Quando access è FALSE, l'intervallo di memoria viene convalidato solo per la lettura. Quando _DEBUG non è definito, le chiamate a _CrtIsValidPointer vengono rimosse durante la pre-elaborazione.
Dato che la funzione restituisce TRUE o FALSE, può essere passata a una delle macro _ASSERT per creare un semplice meccanismo di gestione degli errori di debug. L'esempio seguente causa un errore di asserzione se l'intervallo di memoria non è valido per entrambe lettura e scrittura:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Per altre informazioni su come usare _CrtIsValidPointer con altre funzioni di debug e macro, vedere Macro per la creazione di rapporti. Per informazioni sulle modalità di allocazione, inizializzazione e gestione dei blocchi di memoria nella versione di debug dell'heap di base, vedere Informazioni dettagliate sull'heap di debug CRT.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer è un'estensione Microsoft. Per informazioni sulla compatibilità, vedere Compatibilità.
Librerie
Solo versioni di debug delle librerie di runtime C.
Esempio
Vedere l'esempio per l'argomento _CrtIsValidHeapPointer.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione C standard, usare PInvoke. Per altre informazioni, vedere Esempi di platform invoke.