_CrtIsMemoryBlock

Belirtilen bellek bloğunun yerel yığında olduğunu ve geçerli bir hata ayıklama öbeği blok türü tanımlayıcısına sahip olduğunu doğrular (yalnızca hata ayıklama sürümü).

Sözdizimi

int _CrtIsMemoryBlock(
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *lineNumber
);

Parametreler

userData
Doğrulanması gereken bellek bloğunun başlangıcına işaret eden işaretçi.

size
Belirtilen bloğun boyutu (bayt cinsinden).

requestNumber
bloğunun veya NULLayırma numarasının işaretçisi.

filename
veya NULLbloğunu isteyen kaynak dosyanın adına işaret eden işaretçi.

lineNumber
Kaynak dosyadaki veya NULLiçindeki satır numarasının işaretçisi.

Dönüş değeri

_CrtIsMemoryBlock belirtilen bellek bloğu yerel yığın içinde yer alıyorsa ve geçerli bir hata ayıklama yığını blok türü tanımlayıcısına sahipse döndürür TRUE ; aksi takdirde işlev döndürür FALSE.

Açıklamalar

işlevi, _CrtIsMemoryBlock belirtilen bir bellek bloğunun uygulamanın yerel yığınında bulunduğunu ve geçerli bir blok türü tanımlayıcısına sahip olduğunu doğrular. Bu işlev, nesne ayırma sırası numarasını ve bellek bloğu ayırmanın ilk olarak istendiği kaynak dosya adını/satır numarasını almak için de kullanılabilir. , filenameveya parametresinde geçirilen değer olmayanNULL bir requestNumberdeğer, yerel yığındaki bloğu bulursa, parametrenin bellek bloğunun hata ayıklama üst bilgisindeki değere ayarlanmasına neden olur _CrtIsMemoryBlock lineNumber. Tanımlanmadığında _DEBUG , çağrısı _CrtIsMemoryBlock ön işleme sırasında kaldırılır.

_CrtIsMemoryBlock Başarısız olursa, döndürür FALSEve çıkış parametreleri varsayılan değerlere başlatılır: requestNumber ve lineNumber 0 olarak ayarlanır ve filename olarak NULLayarlanı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, belirtilen adres yerel yığında yer almıyorsa onay hatasına neden olur:

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber,
          &filename, &linenumber ) );

Diğer hata ayıklama işlevleri ve makrolarla nasıl _CrtIsMemoryBlock 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
_CrtIsMemoryBlock <crtdbg.h>

Daha fazla uyumluluk bilgisi 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ı