Aracılığıyla paylaş


_aligned_offset_malloc_dbg

Belirtilen hizalama sınırında bellek ayırır (yalnızca hata ayıklama sürümü).

Sözdizimi

void * _aligned_offset_malloc_dbg(
   size_t size,
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

Parametreler

size
İstenen bellek ayırmanın boyutu.

alignment
Hizalama değeri, 2 tamsayı gücü olmalıdır.

offset
Hizalamayı zorlamak için bellek ayırmaya uzaklık.

filename
Veya ayırma işlemini NULListeyen kaynak dosyanın adına yönelik işaretçi.

linenumber
Kaynak dosyada, ayırma işleminin istendiği veya NULLsatı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_offset_malloc_dbg işlevin _aligned_offset_malloc hata ayıklama sürümüdür. Tanımlanmadığında _DEBUG , çağrısının her _aligned_offset_malloc_dbg biri öğesine yapılan çağrıya _aligned_offset_mallocindirgenir. Hem hem _aligned_offset_malloc_dbg de _aligned_offset_malloc temel yığında bir bellek bloğu ayırın, ancak _aligned_offset_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_offset_malloc_dbg bellek bloğunu istenenden sizebiraz 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_offset_malloc_dbg iç içe yerleştirilmiş bir öğede hizalamanın gerekli olduğu durumlarda kullanışlıdır; örneğin, iç içe geçmiş bir sınıfta hizalama gerekliyse.

_aligned_offset_malloc_dbg öğesini temel alır malloc; daha fazla bilgi için bkz malloc. .

Bu işlev, bellek ayırmanın başarısız olup olmadığını veya istenen boyutun değerinden _HEAP_MAXREQbüyük olup olmadığını olarak ayarlar.errno ENOMEM hakkında errnodaha fazla bilgi için bkz.errno , _doserrno, _sys_errlistve _sys_nerr. Ayrıca parametrelerini _aligned_offset_malloc doğrular. alignment 2'nin gücü değilse veya sıfır olmayan ve değerinden büyük veya buna eşitsesizeoffset, bu işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlev döndürür NULL ve olarak EINVALayarlanı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.

Gereksinimler

Yordam Gerekli başlık
_aligned_offset_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.

Ayrıca bkz.

Hata ayıklama yordamları