NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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).