_CrtCheckMemory
Mengonfirmasi integritas blok memori yang dialokasikan dalam tumpukan debug (hanya versi debug).
Sintaks
int _CrtCheckMemory( void );
Nilai hasil
Jika berhasil, _CrtCheckMemory
mengembalikan TRUE
; jika tidak, fungsi mengembalikan FALSE
.
Keterangan
Fungsi ini _CrtCheckMemory
memvalidasi memori yang dialokasikan oleh manajer timbunan debug dengan memverifikasi timbunan dasar yang mendasar dan memeriksa setiap blok memori. Jika terjadi kesalahan atau ketidakkonsistensi memori dalam timbunan dasar yang mendasarinya, informasi header debug, atau buffer timpa, _CrtCheckMemory
menghasilkan laporan debug dengan informasi yang menjelaskan kondisi kesalahan. Jika _DEBUG
tidak ditentukan, panggilan ke _CrtCheckMemory
akan dihapus selama praproscesing.
Perilaku _CrtCheckMemory
dapat dikontrol dengan mengatur bidang _crtDbgFlag
bit bendera menggunakan _CrtSetDbgFlag
fungsi . _CRTDBG_CHECK_ALWAYS_DF
Mengaktifkan bidang bit menghasilkan dipanggil _CrtCheckMemory
setiap kali operasi alokasi memori diminta. Meskipun metode ini memperlambat eksekusi, metode ini berguna untuk menangkap kesalahan dengan cepat. _CRTDBG_ALLOC_MEM_DF
Mematikan bidang bit menyebabkan _CrtCheckMemory
tidak memverifikasi timbunan dan segera mengembalikan TRUE
.
Karena fungsi ini mengembalikan TRUE
atau FALSE
, fungsi ini dapat diteruskan ke salah _ASSERT
satu makro untuk membuat mekanisme penanganan kesalahan debugging dasar. Contoh berikut menyebabkan kegagalan pernyataan jika kerusakan terdeteksi dalam tumpukan:
_ASSERTE( _CrtCheckMemory( ) );
Untuk informasi selengkapnya tentang bagaimana _CrtCheckMemory
dapat digunakan dengan fungsi debug lainnya, lihat Fungsi pelaporan status timbunan. Untuk gambaran umum manajemen memori dan tumpukan debug, lihat detail tumpukan debug CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_CrtCheckMemory |
<crtdbg.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Debug versi pustaka run-time C saja.
Contoh
Untuk sampel cara menggunakan _CrtCheckMemory
, lihat crt_dbg1
.