Aracılığıyla paylaş


NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Yöntem

Tanım

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen boyutta ve hizalamada hizalanmış bir bellek bloğunu bayt cinsinden yeniden ayırır.

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>

Parametreler

ptr
Void*

Önceden ayrılan bellek bloğu.

byteCount
UIntPtr

nuint

unativeint

Ayrılacak bloğun bayt cinsinden boyutu.

alignment
UIntPtr

nuint

unativeint

Ayrılacak bloğun bayt cinsinden hizalaması. Bu bir gücü 2olmalıdır.

Döndürülenler

Void*

Yeniden ayrılan hizalanmış bellek bloğunun işaretçisi.

Öznitelikler

Özel durumlar

alignment iki güç değildir.

Başarısız olan alignment belleği yeniden ayırmabyteCount.

Açıklamalar

Bu yöntem, gibi AlignedAlloc(UIntPtr, UIntPtr)ptrnulldavranır.

Bu yöntem, başvurulmaması gereken ve bellek sızıntılarını önlemek için serbest olarak geçirilmesi gereken geçerli bir işaretçinin olmasına 0 izin verir byteCount ve döndürür.

Bu yöntem, Win32'de olduğu gibi _aligned_realloc platforma bağlı, hizalanmış bir yeniden yükleme API'sidir.

Bu yöntem veya Realloc(Void*, UIntPtr)ile Free(Void*) uyumlu değildir. Bunun yerine veya AlignedRealloc(Void*, UIntPtr, UIntPtr)çağrısı AlignedFree(Void*) yapın.

Şunlara uygulanır