Bagikan melalui


NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Metode

Definisi

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

Void*

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).

Berlaku untuk