Compartilhar via


NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Método

Definição

Importante

Esta API não está em conformidade com CLS.

Realoca um bloco alinhado de memória do tamanho e alinhamento especificados, em bytes.

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>

Parâmetros

ptr
Void*

O bloco de memória alocado anteriormente.

byteCount
UIntPtr

nuint

unativeint

O tamanho, em bytes, do bloco a ser alocado.

alignment
UIntPtr

nuint

unativeint

O alinhamento, em bytes, do bloco a ser alocado. Isso deve ser uma potência de 2.

Retornos

Void*

Um ponteiro para o bloco de memória alinhado realocado.

Atributos

Exceções

alignment não é um poder de dois.

Realocação byteCount de memória com alignment falha.

Comentários

Esse método atua como AlignedAlloc(UIntPtr, UIntPtr) se ptr fosse null.

Esse método permite ser 0 e retornará um ponteiro válido que não deve ser desreferenciado byteCount e que deve ser passado para livre para evitar vazamentos de memória.

Esse método é uma API de realocação alinhada dependente da plataforma, como _aligned_realloc no Win32.

Esse método não é compatível com Free(Void*) ou Realloc(Void*, UIntPtr). Em vez disso, chame AlignedFree(Void*) ou AlignedRealloc(Void*, UIntPtr, UIntPtr).

Aplica-se a