Freigeben über


_CrtIsValidPointer

Überprüft, ob ein angegebener Speicherbereich für Lese- und Schreibvorgänge gültig ist (nur Debugversion).

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

Parameter

  • Adresse
    Weist auf den Anfang des Speicherbereichs zum Prüfen der Gültigkeit.

  • size
    Die Größe des angegebenen Speicherbereichs (in Bytes).

  • Zugriff
    Für den Speicherbereich zu bestimmende Lese/Schreib-Barrierefreiheit.

Rückgabewert

_CrtIsValidPointer gibt TRUE zurück, wenn der angegebene Speicherbereich für den angegebenen Vorgang bzw. die Vorgänge gültig ist. Andernfalls gibt die Funktion FALSE zurück.

Hinweise

Die Funktion _CrtIsValidPointer überprüft, ob der Speicherbereich, der bei address beginnt und für size Bytes erweitert wird, für die angegebenen Barrierefreiheitsvorgänge gültig ist. Wenn access auf TRUE festgelegt ist, wird der Speicherbereich für Lese- und Schreibvorgänge überprüft. Wenn access auf FALSE festgelegt ist, wird der Speicherbereich nur für Lesevorgänge überprüft. Wenn _DEBUG nicht definiert ist, werden Aufrufe von _CrtIsValidPointer während der Vorverarbeitung entfernt.

Da diese Funktion TRUE oder FALSE zurückgibt, kann sie an eine der _ASSERT-Makros übergeben werden, um einen einfachen Debug-Fehlerbehandlungsmechanismus zu erstellen. Im folgenden Beispiel wird eine Assertionsmeldung ausgelöst, wenn der Speicherbereich für Lese- und Schreibvorgänge ungültig ist:

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

Weitere Informationen dazu, wie _CrtIsValidPointer mit anderen Debugfunktionen und -makros verwendet werden kann, finden Sie unter Makros für die Berichterstellung. Informationen darüber, wie Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Details zum CRT-Debugheap.

Anforderungen

Routine

Erforderlicher Header

_CrtIsValidPointer

<crtdbg.h>

_CrtIsValidPointer ist eine Microsoft-Erweiterung. Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Bibliotheken

Nur Debugversionen von C-Laufzeitbibliotheken.

Beispiel

Weitere Informationen hierzu finden Sie im Beispiel für das Thema _CrtIsValidHeapPointer.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Debugroutinen