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.
Mengubah ukuran blok memori yang dialokasikan dengan _aligned_malloc atau _aligned_offset_malloc.
Sintaks
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parameter
memblock
Penunjuk blok memori saat ini.
size
Ukuran alokasi memori.
alignment
Nilai perataan, yang harus berupa kekuatan bilangan bulat 2.
offset
Offset ke dalam alokasi memori untuk memaksa perataan.
Nilai hasil
_aligned_offset_realloc mengembalikan penunjuk ke blok memori yang dialokasikan (dan mungkin dipindahkan). Nilai yang dikembalikan adalah NULL jika ukurannya nol dan argumen buffer tidak NULL, atau jika tidak ada cukup memori yang tersedia untuk memperluas blok ke ukuran yang diberikan. Dalam kasus pertama, blok asli dibeberkan. Dalam kasus kedua, blok asli tidak berubah. Nilai pengembalian menunjuk ke ruang penyimpanan yang cocok diselaraskan untuk penyimpanan jenis objek apa pun. Untuk mendapatkan penunjuk ke jenis selain void, gunakan jenis cast pada nilai yang dikembalikan.
_aligned_offset_realloc 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.
Keterangan
Seperti _aligned_offset_malloc, _aligned_offset_realloc memungkinkan struktur diselaraskan pada offset dalam struktur.
_aligned_offset_realloc didasarkan pada malloc. Untuk informasi selengkapnya tentang menggunakan _aligned_offset_malloc, lihat malloc. Jika memblock adalah NULL, fungsi memanggil _aligned_offset_malloc secara internal.
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_realloc 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_realloc |
<malloc.h> |
Contoh
Untuk informasi selengkapnya, lihat _aligned_malloc .