NativeMemory.AlignedRealloc(Void*, 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.
Merealokasi blok memori yang selaras dengan ukuran dan perataan yang ditentukan, dalam byte.
public:
static void* AlignedRealloc(void* ptr, UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedRealloc (void* ptr, nuint byteCount, nuint alignment);
[System.CLSCompliant(false)]
public static void* AlignedRealloc (void* ptr, UIntPtr byteCount, UIntPtr alignment);
[<System.CLSCompliant(false)>]
static member AlignedRealloc : nativeptr<unit> * unativeint * unativeint -> nativeptr<unit>
Parameter
- ptr
- Void*
Blok memori yang dialokasikan sebelumnya.
- byteCount
-
UIntPtr
nuint
unativeint
Ukuran, dalam byte, dari blok untuk dialokasikan.
- alignment
-
UIntPtr
nuint
unativeint
Perataan, dalam byte, dari blok untuk dialokasikan. Ini harus menjadi kekuatan 2
.
Mengembalikan
Penunjuk ke blok memori selaras yang dialokasikan kembali.
- Atribut
Pengecualian
alignment
bukan kekuatan dua.
Pengalokasian byteCount
memori dengan alignment
gagal.
Keterangan
Metode ini bertindak seolah-olah AlignedAlloc(UIntPtr, UIntPtr)ptr
adalah null
.
Metode ini memungkinkan byteCount
untuk menjadi 0
dan akan mengembalikan penunjuk yang valid yang tidak boleh didereferensikan dan yang harus diteruskan ke bebas untuk menghindari kebocoran memori.
Metode ini adalah API realokasi yang selaras dengan platform seperti _aligned_realloc
pada Win32.
Metode ini tidak kompatibel dengan Free(Void*) atau Realloc(Void*, UIntPtr). Sebagai gantinya, panggil AlignedFree(Void*) atau AlignedRealloc(Void*, UIntPtr, UIntPtr).