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

Ayrıca bkz.

Hata ayıklama yordamları