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