_aligned_offset_malloc_dbg
Mengalokasikan memori pada batas perataan tertentu (hanya versi debug).
Sintaks
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parameter
size
Ukuran alokasi memori yang diminta.
alignment
Nilai perataan, yang harus berupa kekuatan bilangan bulat 2.
offset
Offset ke dalam alokasi memori untuk memaksa perataan.
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_offset_malloc_dbg
adalah versi debug dari _aligned_offset_malloc
fungsi. Ketika _DEBUG
tidak ditentukan, setiap panggilan ke _aligned_offset_malloc_dbg
dikurangi menjadi panggilan ke _aligned_offset_malloc
. Baik _aligned_offset_malloc
dan _aligned_offset_malloc_dbg
alokasikan blok memori di tumpukan dasar, tetapi _aligned_offset_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_offset_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_offset_malloc_dbg
berguna dalam situasi di mana penyelarasan diperlukan pada elemen berlapis; misalnya, jika perataan diperlukan pada kelas berlapis.
_aligned_offset_malloc_dbg
didasarkan pada malloc
; untuk informasi selengkapnya, lihat malloc
.
Fungsi ini diatur errno
ke ENOMEM
jika alokasi memori gagal atau jika ukuran yang diminta lebih besar dari _HEAP_MAXREQ
. Untuk informasi selengkapnya tentang errno
, lihat errno
, , _sys_errlist
_doserrno
, dan _sys_nerr
. Selain itu, _aligned_offset_malloc
memvalidasi parameternya. Jika alignment
bukan kekuatan 2, atau jika offset
bukan nol dan lebih besar dari atau sama dengan size
, 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.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_aligned_offset_malloc_dbg |
<crtdbg.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Debug versi pustaka run-time C saja.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk