NativeMemory.AlignedAlloc(UIntPtr, UIntPtr) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Penting
API ini bukan kompatibel CLS.
Mengalokasikan blok memori yang selaras dengan ukuran dan perataan yang ditentukan, dalam byte.
public:
static void* AlignedAlloc(UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc (nuint byteCount, nuint alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc (UIntPtr byteCount, UIntPtr alignment);
[<System.CLSCompliant(false)>]
static member AlignedAlloc : unativeint * unativeint -> nativeptr<unit>
Parameter
- byteCount
-
UIntPtr
nuint
unativeint
Ukuran, dalam byte, dari blok yang akan dialokasikan.
- alignment
-
UIntPtr
nuint
unativeint
Perataan, dalam byte, dari blok untuk dialokasikan. Ini harus menjadi kekuatan 2
.
Mengembalikan
Penunjuk ke blok memori yang selaras yang dialokasikan.
- Atribut
Pengecualian
alignment
bukan kekuatan dua.
Mengalokasikan byteCount
memori dengan alignment
gagal.
Keterangan
Metode ini memungkinkan byteCount
untuk menjadi 0
dan akan mengembalikan pointer yang valid yang tidak boleh didereferensikan dan yang harus diteruskan ke bebas untuk menghindari kebocoran memori.
Metode ini adalah pembungkus tipis melalui API C aligned_alloc
atau API alokasi selaras dependen platform seperti _aligned_malloc
pada Win32.
Metode ini tidak kompatibel dengan Free(Void*) atau Realloc(Void*, UIntPtr). Sebagai gantinya, panggil AlignedFree(Void*) atau AlignedRealloc(Void*, UIntPtr, UIntPtr).
Berlaku untuk
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