Ayırma kanca işlevler
Bir ayırma kanca işlevi kullanılarak yüklenen _CrtSetAllocHook, her bellek tahsis, re-allocated veya serbest olarak adlandırılır. Bu tür bir kanca birçok farklı amaçlar için kullanılabilir. Onu, uygulama yetersiz bellek durumlarda, örneğin, işleme biçimini sınamak veya ayırma modellerini incelemek veya daha sonraki analizler için ayırma bilgilerinin günlüğünü kullanın.
Not
c Çalışma Zamanı Kitaplığı işlevlerini açıklandığı bir ayırma kanca işlevi kullanılarak ilgili kısıtlama haberdar c çalışma zamanı bellek ayırmalarını ayırma takar ve.
Ayırma kanca işlev prototipi aşağıdaki gibi olmalıdır:
int YourAllocHook(int nAllocType, void *pvData,
size_t nSize, int nBlockUse, long lRequest,
const unsigned char * szFileName, int nLine )
Geçişi için işaretçiyi _CrtSetAllocHook tür _crt_alloc_hook, CRTDBG'de tanımlandığı gibi.Y:
typedef int (__cdecl * _CRT_ALLOC_HOOK)
(int, void *, size_t, int, long, const unsigned char *, int);
Çalışma Zamanı Kitaplığı, hook çağırdığında nAllocType bağımsız değişkeni gösterir ne ayırma işlemi ise yaklaşık gerçekleştirilecek (_hook_alloc, _hook_realloc, veya _hook_free). Durumunda, bir boş veya yeniden tahsisat, pvData kullanıcı konu hakkında serbest bloğu için bir işaretçi içerir. Ayırma değil henüz oluştu ancak bir ayırma durumunda bu işaretçi null, çünkü. Kalan argümanlar ayırma boyutu söz konusu blok türü, varsa ve bir işaretçi ayırma yapıldığı, dosya adı ve satır numarası ile ilişkili istek ardışık numarasını içerir. Kanca işlevi ne olursa olsun çözümleme yapar ve diğer görevleri kendi Yazar isterse sonra onu da döndürmelidir doğru, ayırma işleminin devam edebilirsiniz gösteren veya yanlış, işlemin başarısız olması gösteren. Bu tür basit bir kanca şimdiye ayrılan bellek miktarını denetleyin ve iade yanlış , bu tutar küçük sınırı aşıldı. Uygulama sonra kullanılabilir bellek çok düşük normalde ortaya çıkabilecek ayırma hataları tür deneyimi. Daha karmaşık kancaları ayırma desenleri izlemek, bellek kullanımını çözümlemek veya özel durumlar ortaya çıktığında rapor.
Ayrıca bkz.
Görevler
Kavramlar
Ayırma kancaları ve c çalışma zamanı bellek ayırma