Aracılığıyla paylaş


NativeMemory.AlignedAlloc(UIntPtr, UIntPtr) Yöntem

Tanım

Önemli

Bu API, CLS uyumlu değildir.

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

public:
 static void* AlignedAlloc(UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc (nuint byteCount, nuint alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc (UIntPtr byteCount, UIntPtr alignment);
[<System.CLSCompliant(false)>]
static member AlignedAlloc : unativeint * unativeint -> nativeptr<unit>

Parametreler

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*

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

Öznitelikler

Özel durumlar

alignment iki güç değildir.

Başarısız olan alignment bellek ayırmabyteCount.

Açıklamalar

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, C aligned_alloc API üzerinde ince bir sarmalayıcı veya Win32 gibi _aligned_malloc platforma bağlı hizalanmış ayı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