Bagikan melalui


_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_BLOCKatau _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.

Lihat juga

Rutinitas debug
_malloc_dbg