_free_dbg
Yığındaki bir bellek bloğunu serbest bırakır (yalnızca hata ayıklama sürümü).
Sözdizimi
void _free_dbg(
void *userData,
int blockType
);
Parametreler
userData
Boşaltılacak ayrılan bellek bloğunun işaretçisi.
blockType
Boşaltılacak ayrılmış bellek bloğunun türü: _CLIENT_BLOCK
, _NORMAL_BLOCK
veya _IGNORE_BLOCK
.
Açıklamalar
İşlev _free_dbg
, işlevin free
hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG
, çağrısının her _free_dbg
biri öğesine yapılan çağrıya free
indirgenir. _free_dbg
Hem hem de free
temel yığındaki bir bellek bloğunu serbest bırakır, ancak _free_dbg
iki hata ayıklama özelliği içerir: boş blokları yığının bağlı listesinde tutarak düşük bellek koşullarının benzetimini yapma ve belirli ayırma türlerini boşaltmak için bir blok türü parametresi.
_free_dbg
, ücretsiz işlemi gerçekleştirmeden önce belirtilen tüm dosyalarda ve blok konumlarında geçerlilik denetimi gerçekleştirir. Uygulamanın bu bilgileri sağlaması beklenmiyor. Bir bellek bloğu serbest olduğunda, hata ayıklama yığını yöneticisi kullanıcı bölümünün her iki tarafındaki arabelleklerin bütünlüğünü otomatik olarak denetler. Üzerine yazma algılarsa bir hata raporu oluşturur. Bayrağın _CRTDBG_DELAY_FREE_MEM_DF
_crtDbgFlag
bit alanı ayarlanırsa, serbest tutulan blok 0xDD değeriyle doldurulur, blok türü atanır _FREE_BLOCK
ve yığının bağlı bellek blokları listesinde tutulur.
Bellek boşaltılırken bir hata oluşursa, errno
işletim sisteminden hatanın niteliğine ilişkin bilgilerle ayarlanır. Daha fazla bilgi için bkz. errno
, _doserrno
, _sys_errlist
ve _sys_nerr
.
Temel yığının hata ayıklama sürümünde bellek bloklarının nasıl ayrıldığı, başlatıldığı ve yönetildiğini öğrenmek için bkz . CRT hata ayıklama yığını ayrıntıları. Ayırma bloğu türleri ve bunların nasıl kullanıldığı hakkında bilgi için bkz . Hata ayıklama yığınındaki blok türleri. Standart yığın işlevini çağırma ile hata ayıklama sürümü arasındaki farklar hakkında bilgi için bkz . Yığın ayırma işlevlerinin hata ayıklama sürümleri.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_free_dbg |
<crtdbg.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
nasıl kullanılacağına _free_dbg
ilişkin bir örnek için bkz crt_dbg2
. .