次の方法で共有


Marshal.ReAllocHGlobal(IntPtr, IntPtr) メソッド

定義

以前に AllocHGlobal(IntPtr) を使用して割り当てられたメモリ ブロックのサイズを変更します。

public:
 static IntPtr ReAllocHGlobal(IntPtr pv, IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr ReAllocHGlobal (IntPtr pv, IntPtr cb);
public static IntPtr ReAllocHGlobal (IntPtr pv, IntPtr cb);
[<System.Security.SecurityCritical>]
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
Public Shared Function ReAllocHGlobal (pv As IntPtr, cb As IntPtr) As IntPtr

パラメーター

pv
IntPtr

nativeint

AllocHGlobal(IntPtr) を使用して割り当てられたメモリへのポインター。

cb
IntPtr

nativeint

割り当てられたブロックの新しいサイズ。 これはポインターではありません。IntPtr 型にキャストされた、要求しているバイト数です。 ポインターを渡すと、サイズとして扱われます。

戻り値

IntPtr

nativeint

再割り当てされたメモリへのポインター。 このメモリは、FreeHGlobal(IntPtr) を使用して解放する必要があります。

属性

例外

メモリが不足しているため要求を満たせません。

注釈

ReAllocHGlobal は、 クラスの 2 つのメモリ再割り当て API メソッドの Marshal 1 つです。 (Marshal.ReAllocCoTaskMem はもう一方です)。

このメソッドは、Kernel32.dll から Win32 GlobalReAlloc 関数を 公開します。 返されるポインターは、元のポインターとは異なる場合があります。 異なる場合は、元のメモリ ブロックの内容が新しいブロックにコピーされ、元のメモリ ブロックが解放されています。

適用対象

こちらもご覧ください