_aligned_offset_malloc

Mengalokasikan memori pada batas perataan tertentu.

Sintaks

void * _aligned_offset_malloc(
   size_t size,
   size_t alignment,
   size_t offset
);

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.

Nilai hasil

Penunjuk ke blok memori yang dialokasikan atau NULL jika operasi gagal.

Keterangan

_aligned_offset_malloc berguna dalam situasi di mana penyelarasan diperlukan pada elemen berlapis; misalnya, jika perataan diperlukan pada kelas berlapis.

_aligned_offset_malloc didasarkan pada malloc; untuk informasi selengkapnya, lihat malloc.

_aligned_offset_malloc ditandai __declspec(noalias) dan __declspec(restrict), yang berarti bahwa fungsi dijamin tidak memodifikasi variabel global dan bahwa penunjuk yang dikembalikan tidak diberi alias. Untuk informasi lebih lanjut, lihat noalias dan restrict.

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.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
_aligned_offset_malloc <malloc.h>

Contoh

Untuk informasi selengkapnya, lihat _aligned_malloc .

Baca juga

Perataan data