Condividi tramite


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

Vedere anche

Riferimenti

Routine di debug