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, UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedRealloc(void* ptr, nuint byteCount, nuint alignment);
[<System.CLSCompliant(false)>]
static member AlignedRealloc : nativeptr<unit> * unativeint * unativeint -> nativeptr<unit>

Parametreler

ptr
Void*

Daha önce 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üç 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 ptrnulldavranırAlignedAlloc(UIntPtr, UIntPtr).

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çi olmasını sağlar byteCount0 ve döndürür.

Bu yöntem, Win32'de olduğu gibi _aligned_realloc platforma bağımlı, hizalanmış bir yeniden konumlandırma 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