bool AfxCheckMemory ( );
Dönüş değeri
Sıfır bellek hata yok ise; Aksi halde 0.
Açıklamalar
Bu işlev boş bellek havuzu doğrular ve gerektiği gibi hata iletileri yazdırır. İşlev hiçbir bellek bozulması algılarsa, hiçbir şey yazdırır.
Şu anda öbek üzerinde ayrılmış tüm bellek bloklarını Yeni ama bu malloc işlevi veya GlobalAlloc Windows işlevi gibi temel bellek allocators doğrudan yapılan çağrılar tarafından ayrılan tarafından ayrılan dahil olmak üzere denetlenir. Herhangi bir blok bozuk bulunursa, bir ileti hata ayıklayıcı çıkış yazdırılır.
Satır eklerseniz
# define yeni debug_new
bir program modülü, ardından sonraki aramalar için AfxCheckMemory dosya ismi ve satır numarasını nerede bellek tahsis göster.
&Notnbsp; Modülü içeren bir veya daha fazla uygulamaları seri hale getirilebilir sınıfları, o zaman sen koymak gerekir #define son IMPLEMENT_SERIAL makro aramadan sonra satırı.
Bu işlev yalnızca hata ayıklama sürümünde mfc çalışır.
Örnek
/ / AfxCheckMemory Ör&neğin
Kafes * pcage = yeni kafes (21); nbsp; / / Kafes türetilmiş CObject.
Yaş * sayfa = new Age (22); / / Yaş CObject türetilmiş değil.
*(((char*) pcage) - 1) = 99; / / Önceki nöbet byte bozmak
*(((char*) sayfası) - 1) = 99; / / Önceki nöbet byte bozmak
AfxCheckMemory()
Programın sonuçları aşağıdaki gibidir.:
bellek onay yanlışlık vasıl $0067495F = $63, should be $dt
HASAR: Sigara-nesne bloğunda $00674960 önce
Sigara-nesne dosya test02.cxx(48) tahsis edilen
Sigara-$00674960 bulunan 2 bayt uzunluğunda nesnesidir
bellek onay yanlışlık vasıl $00674905 = $63, should be $dt
HASAR: Nesne bloğunda $00674906 önce
Dosya test02.cxx(47) ayrılan nesne
$00674906 Bulunan 6 bayt uzunlukta nesnesidir