_free_dbg
Membebaskan blok memori dalam tumpukan (hanya versi debug).
Sintaks
void _free_dbg(
void *userData,
int blockType
);
Parameter
userData
Pointer ke blok memori yang dialokasikan untuk dibebaskan.
blockType
Jenis blok memori yang dialokasikan untuk dibebaskan: _CLIENT_BLOCK
, , _NORMAL_BLOCK
atau _IGNORE_BLOCK
.
Keterangan
Fungsi ini _free_dbg
adalah versi debug dari free
fungsi. Ketika _DEBUG
tidak ditentukan, setiap panggilan ke _free_dbg
dikurangi menjadi panggilan ke free
. Baik free
dan _free_dbg
bebaskan blok memori di tumpukan dasar, tetapi _free_dbg
mengakomodasi dua fitur debugging: kemampuan untuk menjaga blok yang dibeberkan dalam daftar tertaut timbunan untuk mensimulasikan kondisi memori rendah dan parameter jenis blok untuk membebaskan jenis alokasi tertentu.
_free_dbg
melakukan pemeriksaan validitas pada semua file dan lokasi blok yang ditentukan sebelum melakukan operasi gratis. Aplikasi tidak diharapkan untuk memberikan informasi ini. Ketika blok memori dibebaskan, manajer timbunan debug secara otomatis memeriksa integritas buffer di kedua sisi bagian pengguna. Ini mengeluarkan laporan kesalahan jika mendeteksi penimpaan. _CRTDBG_DELAY_FREE_MEM_DF
Jika bidang _crtDbgFlag
bit bendera diatur, blok yang dibeberkan diisi dengan nilai 0xDD, menetapkan _FREE_BLOCK
jenis blok, dan disimpan dalam daftar blok memori tertaut timbunan.
Jika terjadi kesalahan dalam membebaskan memori, errno
diatur dengan informasi dari sistem operasi pada sifat kegagalan. Untuk informasi selengkapnya, lihat errno
, _doserrno
, _sys_errlist
, dan _sys_nerr
.
Untuk informasi tentang bagaimana blok memori dialokasikan, diinisialisasi, dan dikelola dalam versi debug timbunan dasar, lihat detail timbunan debug CRT. Untuk informasi tentang jenis blok alokasi dan cara penggunaannya, lihat Jenis blok pada tumpukan debug. Untuk informasi tentang perbedaan antara memanggil fungsi timbunan standar dan versi debug, lihat Men-debug versi fungsi alokasi timbunan.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_free_dbg |
<crtdbg.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Untuk sampel cara menggunakan _free_dbg
, lihat crt_dbg2
.