次の方法で共有


NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) メソッド

定義

重要

この API は CLS 準拠ではありません。

指定したサイズとアラインメントのアラインメント されたメモリ ブロックをバイト単位で再割り当てします。

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>

パラメーター

ptr
Void*

以前に割り当てられたメモリ ブロック。

byteCount
UIntPtr

nuint

unativeint

割り当てるブロックのサイズ (バイト単位)。

alignment
UIntPtr

nuint

unativeint

割り当てるブロックのアラインメント (バイト単位)。 これは の累乗 2である必要があります。

戻り値

Void*

再割り当てされたメモリ ブロックへのポインター。

属性

例外

alignment は 2 の累乗ではありません。

を使用byteCountalignmentしたメモリの再割り当てに失敗しました。

注釈

このメソッドはnull、 と同様にAlignedAlloc(UIntPtr, UIntPtr)ptr機能します。

このメソッドは0、 を にすることができbyteCount、逆参照すべきではなく、メモリ リークを回避するために free に渡す必要がある有効なポインターを返します。

このメソッドは、Win32 などの _aligned_realloc プラットフォーム依存のアラインされた再割り当て API です。

このメソッドは、 または Realloc(Void*, UIntPtr)Free(Void*)互換性がありません。 代わりに、 または を呼び出しますAlignedFree(Void*)AlignedRealloc(Void*, UIntPtr, UIntPtr)

適用対象