_CrtIsValidPointer

Memverifikasi bahwa pointer tidak null. Dalam versi pustaka run-time C sebelum Visual Studio 2010, memverifikasi bahwa rentang memori tertentu valid untuk membaca dan menulis (hanya versi debug).

Sintaks

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

Parameter

address
Arahkan ke awal rentang memori untuk menguji validitas.

size
Ukuran rentang memori yang ditentukan (dalam byte).

access
Aksesibilitas baca/tulis untuk menentukan rentang memori.

Nilai hasil

_CrtIsValidPointer mengembalikan TRUE jika pointer yang ditentukan tidak null. Dalam versi pustaka CRT sebelum Visual Studio 2010, mengembalikan TRUE jika rentang memori valid untuk operasi atau operasi yang ditentukan. Sebaliknya, fungsi ini akan menampilkan FALSE.

Keterangan

Di pustaka CRT di Visual Studio 2010 dan versi yang lebih baru, size parameter dan access diabaikan, dan _CrtIsValidPointer hanya memverifikasi bahwa yang ditentukan address tidak null. Karena pengujian ini mudah dilakukan sendiri, kami tidak menyarankan Anda menggunakan fungsi ini. Dalam versi sebelum Visual Studio 2010, fungsi memverifikasi bahwa rentang memori dimulai dan address diperluas untuk size byte valid untuk operasi atau operasi aksesibilitas yang ditentukan. Ketika access diatur ke TRUE, rentang memori diverifikasi untuk membaca dan menulis. Ketika access adalah FALSE, rentang memori hanya divalidasi untuk membaca. Jika _DEBUG tidak ditentukan, panggilan ke _CrtIsValidPointer akan dihapus selama praproscesing.

Karena fungsi ini mengembalikan TRUE atau FALSE, fungsi ini dapat diteruskan ke salah _ASSERT satu makro untuk membuat mekanisme penanganan kesalahan debugging dasar. Contoh berikut menyebabkan kegagalan pernyataan jika rentang memori tidak valid untuk operasi membaca dan menulis:

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

Untuk informasi selengkapnya tentang bagaimana _CrtIsValidPointer dapat digunakan dengan fungsi debug dan makro lainnya, lihat Makro untuk pelaporan. Untuk informasi tentang bagaimana blok memori dialokasikan, diinisialisasi, dan dikelola dalam versi debug timbunan dasar, lihat detail timbunan debug CRT.

Persyaratan

Rutin Header yang diperlukan
_CrtIsValidPointer <crtdbg.h>

_CrtIsValidPointer adalah ekstensi Microsoft. Untuk informasi kompatibilitas, lihat Kompatibilitas.

Pustaka

Debug versi pustaka run-time C saja.

Contoh

Lihat contoh untuk artikel ini _CrtIsValidHeapPointer .

Baca juga

Rutinitas debug