_aligned_malloc_dbg
Belirtilen hizalama sınırındaki belleği hata ayıklama üst bilgisi için ek alanla ayırır ve arabelleklerin üzerine yazar (yalnızca hata ayıklama sürümü).
Sözdizimi
void * _aligned_malloc_dbg(
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parametreler
size
İstenen bellek ayırmanın boyutu.
alignment
Hizalama değeri, 2 tamsayı gücü olmalıdır.
filename
Veya ayırma işlemini NULL
isteyen kaynak dosyanın adına yönelik işaretçi.
linenumber
Kaynak dosyada, ayırma işleminin istendiği veya NULL
satır numarası.
Dönüş değeri
Ayrılan bellek bloğunun veya NULL
işlemin başarısız olup olmadığını gösteren bir işaretçi.
Açıklamalar
_aligned_malloc_dbg
işlevin _aligned_malloc
hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG
, çağrısının her _aligned_malloc_dbg
biri öğesine yapılan çağrıya _aligned_malloc
indirgenir. Hem hem _aligned_malloc_dbg
de _aligned_malloc
temel yığında bir bellek bloğu ayırın, ancak _aligned_malloc_dbg
birkaç hata ayıklama özelliği sunar: sızıntıları test etmek için bloğun kullanıcı bölümünün her iki tarafındaki arabellekler ve filename
/linenumber
ayırma isteklerinin kaynağını belirlemeye yönelik bilgiler. Blok türü parametresiyle belirli ayırma türlerini izlemek, hizalanmış ayırmalar için desteklenen bir hata ayıklama özelliği değildir. Hizalanmış ayırmalar bir _NORMAL_BLOCK
blok türü olarak görünür.
_aligned_malloc_dbg
bellek bloğunu istenenden size
biraz daha fazla alanla ayırır. Ek alan, hata ayıklama yığın yöneticisi tarafından hata ayıklama bellek bloklarını bağlamak ve uygulamaya hata ayıklama üst bilgisi bilgileri sağlamak ve arabelleklerin üzerine yazmak için kullanılır. Blok ayrıldığında, bloğun kullanıcı bölümü 0xCD değeriyle doldurulur ve üzerine yazma arabelleklerinin her biri 0xFD ile doldurulur.
_aligned_malloc_dbg
ENOMEM
, bellek ayırmanın başarısız olup olmadığını veya gereken bellek miktarının (daha önce bahsedilen ek yük dahil) aşılıp aşılmadığını _HEAP_MAXREQ
olarak ayarlarerrno
. Bu ve diğer hata kodları hakkında bilgi için bkz. errno
, _doserrno
, _sys_errlist
ve _sys_nerr
. Ayrıca parametrelerini _aligned_malloc_dbg
doğrular. 2'nin gücü değilse veya sıfırsaalignment
, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini size
çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlev döndürür NULL
ve olarak EINVAL
ayarlanırerrno
.
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şlevleri ile bunların hata ayıklama sürümleri arasındaki farklar hakkında bilgi için bkz . Yığın ayırma işlevlerinin sürümlerinde hata ayıklama.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_aligned_malloc_dbg |
<crtdbg.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Kitaplıklar
Yalnızca C çalışma zamanı kitaplıklarının sürümlerinde hata ayıklama.