_CrtIsValidPointer
Überprüft, ob ein angegebener Speicherbereich für das Lesen und Schreiben gültig ist (nur Debugversion).
int _CrtIsValidPointer(
const void *address,
unsigned int size,
int access
);
Parameter
Adresse
Punkte am Anfang des Speicherbereichs, dessen Gültigkeit getestet werden soll.size
Größe des angegebenen Speichers (in Bytes).Zugriff
Für den Speicherbereich zu bestimmen, barrierefreiheit mit Lese-/Schreibzugriff.
Rückgabewert
_CrtIsValidPointer gibt TRUE zurück, wenn der angegebene Speicherbereich für den angegebenen Vorgang oder Vorgänge gültig ist.Andernfalls gibt die Funktion FALSE zurück.
Hinweise
Die _CrtIsValidPointer-Funktion überprüft, ob der Speicherbereichs, beginnend an der Adresse und das Erweitern size für Barrierefreiheit Bytes für den angegebenen Vorgang oder - Vorgängen gültig ist.Beim Zugriff festgelegt ist, wird der AUSZURICHTEN Speicherbereich für Lese- und Schreibvorgänge aktiviert.Wenn Adresse FALSCH ist, wird der Speicherbereich nur zum Lesen überprüft.Wenn _DEBUG nicht definiert wird, werden Aufrufe _CrtIsValidPointer während des Präprozessorlaufs entfernt.
Da diese Funktion TRUE oder FALSE zurückgibt, kann sie auf eines der _ASSERT Makros übergeben werden, um einen einfachen Mechanismus zur fehlerbehandlungs Debuggen zu erstellen.Das folgende Beispiel führt zu einem Assertionsfehler, wenn der Speicherbereich für Lese- und Schreiboperationen zulässig ist:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Weitere Informationen zum Debuggen mit anderen _CrtIsValidPointer-Funktionen und Makros verwendet werden kann, finden Sie unter Verwenden von Makros zum Überprüfen und Berichterstellung.Weitere Informationen zum Speicherblöcke in der Debugversion des Basisheaps zugeordnet, initialisiert und verwaltet werden, finden Sie unter Speicherverwaltung und Debugheap.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Bibliotheken
Debugversionen von nur C .
Beispiel
Weitere Informationen finden Sie im Beispiel zum _CrtIsValidHeapPointer Thema.
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.