Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengalokasikan memori pada batas perataan tertentu dengan ruang ekstra untuk header penelusuran kesalahan dan menimpa buffer (hanya versi debug).
Sintaks
void * _aligned_malloc_dbg(
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parameter
size
Ukuran alokasi memori yang diminta.
alignment
Nilai perataan, yang harus berupa kekuatan bilangan bulat 2.
filename
Penunjuk ke nama file sumber yang meminta operasi alokasi atau NULL.
linenumber
Nomor baris dalam file sumber tempat operasi alokasi diminta atau NULL.
Nilai hasil
Penunjuk ke blok memori yang dialokasikan atau NULL jika operasi gagal.
Keterangan
_aligned_malloc_dbg adalah versi debug dari _aligned_malloc fungsi. Ketika _DEBUG tidak ditentukan, setiap panggilan ke _aligned_malloc_dbg dikurangi menjadi panggilan ke _aligned_malloc. Baik _aligned_malloc dan _aligned_malloc_dbg alokasikan blok memori di tumpukan dasar, tetapi _aligned_malloc_dbg menawarkan beberapa fitur penelusuran kesalahan: buffer di kedua sisi bagian pengguna blok untuk menguji kebocoran, dan filename/linenumber informasi untuk menentukan asal permintaan alokasi. Melacak jenis alokasi tertentu dengan parameter jenis blok bukan fitur debug yang didukung untuk alokasi yang selaras. Alokasi yang diratakan akan muncul sebagai _NORMAL_BLOCK jenis blok.
_aligned_malloc_dbg mengalokasikan blok memori dengan sedikit lebih banyak ruang daripada yang diminta size. Ruang ekstra digunakan oleh manajer timbunan debug untuk menautkan blok memori debug dan untuk menyediakan aplikasi dengan informasi header debug dan menimpa buffer. Ketika blok dialokasikan, bagian pengguna dari blok diisi dengan nilai 0xCD, dan masing-masing buffer penimpaan diisi dengan 0xFD.
_aligned_malloc_dbgerrno diatur ke ENOMEM jika alokasi memori gagal atau jika jumlah memori yang diperlukan (termasuk overhead yang disebutkan sebelumnya) melebihi _HEAP_MAXREQ. Untuk informasi tentang ini dan kode kesalahan lainnya, lihat errno, , _doserrno_sys_errlist, dan _sys_nerr. Selain itu, _aligned_malloc_dbg memvalidasi parameternya. Jika alignment bukan kekuatan 2 atau size nol, fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi ini mengembalikan NULL dan mengatur errno ke EINVAL.
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 fungsi timbunan standar dan versi debugnya, lihat Versi debug fungsi alokasi timbunan.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_aligned_malloc_dbg |
<crtdbg.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Debug versi pustaka run-time C saja.