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*

Önceden ayrılmış 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ğuna bir işaretçi.

Ö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ı 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ğımlı, hizalanmış bir yeniden konumlandırma API'dir.

Bu yöntem veya Realloc(Void*, UIntPtr)ile Free(Void*) uyumlu değildir. Bunun yerine veya AlignedRealloc(Void*, UIntPtr, UIntPtr)öğesini arayınAlignedFree(Void*).

Şunlara uygulanır