Aracılığıyla paylaş


_CrtMemDifference

İki bellek karşılaştırır bildiren ve bunların farkları (yalnızca hata ayıklama sürümü) döndürür.

int _CrtMemDifference( 
   _CrtMemState *stateDiff,
   const _CrtMemState *oldState,
   const _CrtMemState *newState 
);

Parametreler

  • stateDiff
    İşaretçi bir _CrtMemState (iade) iki bellek durumları arasındaki farklar depolamak için kullanılan yapı.

  • oldState
    Bir önceki bellek durumunu gösteren işaretçi (_CrtMemState yapısı).

  • newState
    İmleci sonraki bellek durumuna (_CrtMemState yapısı).

Dönüş Değeri

Bellek önemli ölçüde farklı durumları, _CrtMemDifference doğru sonucunu verir.Aksi durumda, işlev false değerini döndürür.

Notlar

_CrtMemDifference Karşılaştırır işlev oldState ve newState ve kendi farklılıklarını saklar stateDiff, hangi sonra uygulama tarafından bellek sızıntıları ve diğer bellek sorunlarını algılamak için kullanılabilir.Zaman _DEBUG tanımlı değilse, çağıran için _CrtMemDifference ön-işleme sırasında kaldırılır.

newStateve oldState her bir geçerli işaretçi olmalıdır bir _CrtMemState tarafından doldurulmuştur Crtdbg.h, tanımlanmış yapısı, _CrtMemCheckpoint önce edinilecek _CrtMemDifference.stateDiffbir işaretçi önceden ayrılmış bir örneği olması gereken _CrtMemState yapısı.stateDiff, newState, Veya oldState olan NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Yürütülmesine devam etmek için izin verilip verilmediğini errno, _doserrno, _sys_errlist ve _sys_nerr ayarlamak EINVAL ve işlev false döndürür.

_CrtMemDifferencekarşılaştırır _CrtMemState alan değerlerini bloklar halinde oldState olarak newState ve sonuçta saklar stateDiff.Blok türleri sayısı tahsis veya her türü için tahsis edilen blok toplam sayısı iki bellek durumlar arasında farklılık gösterir, durumları önemli ölçüde farklı olduğu söylenir.İki durumu da saklanır için bugüne kadar aynı anda iki durumları ve toplam tahsisat arasındaki fark için ayrılan en büyük tutarı arasındaki fark stateDiff.

Varsayılan olarak, iç c çalışma zamanı bloklar (_CRT_BLOCK) bellek durumu işlemlerinde dahil edilmez._CrtSetDbgFlag İşlevini etkinleştirmek için kullanılabilir _CRTDBG_CHECK_CRT_DF , bit _crtDbgFlag bu bloklar sızıntı algılaması ve diğer bellek durumu işlemleri eklemek için.Serbest bellek blokları (_FREE_BLOCK) değil neden _CrtMemDifference true döndürmek için.

Öbek durumu işlevleri hakkında daha fazla bilgi ve _CrtMemState yapısı, bkz: Öbek durumu raporlama işlevleri.Nasıl bellek bloklarını tahsis başlatıldı ve yönetilen temel yığın hata ayıklama sürümü hakkında daha fazla bilgi için bkz: Bellek yönetimi ve hata ayıklama öbek.

Gereksinimler

Yordamı

Gerekli başlık

İsteğe bağlı bir üstbilgi

_CrtMemDifference

<crtdbg.h>

<errno.h>

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Kitaplıklar: hata ayıklama sürümlerini crt kitaplığı özellikleri yalnızca.

Örnek

Bkz: crt_dbg1

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz. Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

Yordamlar hata ayıklama

_crtDbgFlag