_CrtIsValidPointer
İşaretçinin null olmadığını doğrular. Visual Studio 2010'dan önceki C çalışma zamanı kitaplığı sürümlerinde, belirtilen bellek aralığının okuma ve yazma için geçerli olduğunu doğrular (yalnızca hata ayıklama sürümü).
Sözdizimi
int _CrtIsValidPointer(
const void *address,
unsigned int size,
int access
);
Parametreler
address
Geçerliliği test etmek için bellek aralığının başlangıcını gösterir.
size
Belirtilen bellek aralığının boyutu (bayt cinsinden).
access
Bellek aralığını belirlemek için okuma/yazma erişilebilirliği.
Dönüş değeri
_CrtIsValidPointer
belirtilen işaretçi null değilse döndürür TRUE
. Visual Studio 2010'un önceki CRT kitaplık sürümlerinde, bellek aralığının belirtilen işlem veya işlemler için geçerli olup olmadığını döndürür TRUE
. Aksi takdirde işlevi döndürür FALSE
.
Açıklamalar
Visual Studio 2010 ve sonraki sürümlerindeki CRT kitaplığında size
ve access
parametreleri yoksayılır ve _CrtIsValidPointer
yalnızca belirtilenin address
null olmadığını doğrular. Bu testi kendiniz gerçekleştirmek kolay olduğundan, bu işlevi kullanmanızı önermeyiz. Visual Studio 2010'dan önceki sürümlerde işlev, bayt cinsinden başlayan address
ve genişleyen size
bellek aralığının belirtilen erişilebilirlik işlemi veya işlemleri için geçerli olduğunu doğrular. access
olarak ayarlandığındaTRUE
, bellek aralığı hem okuma hem de yazma için doğrulanır. olduğunda access
FALSE
, bellek aralığı yalnızca okuma için doğrulanır. Tanımlanmadığında _DEBUG
, çağrısı _CrtIsValidPointer
ön işleme sırasında kaldırılır.
Bu işlev veya FALSE
döndürdüğündenTRUE
, temel hata ayıklama hata işleme mekanizması oluşturmak için makrolardan birine _ASSERT
geçirilebilir. Aşağıdaki örnek, bellek aralığı hem okuma hem de yazma işlemleri için geçerli değilse onay hatasına neden olur:
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
Diğer hata ayıklama işlevleri ve makrolarla nasıl _CrtIsValidPointer
kullanabileceğinizle ilgili daha fazla bilgi için bkz . Raporlama için makrolar. Temel yığının hata ayıklama sürümünde bellek bloklarının nasıl ayrıldığı, başlatıldığı ve yönetildiğini öğrenmek için bkz . CRT hata ayıklama yığını ayrıntıları.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer
bir Microsoft uzantısıdır. Uyumluluk bilgileri için bkz . Uyumluluk.
Kitaplıklar
Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.
Örnek
Makalenin örneğine _CrtIsValidHeapPointer
bakın.