共用方式為


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)釋放此記憶體。

屬性

例外狀況

記憶體不足,無法滿足要求。

備註

重要

這個原生記憶體配置器是舊版 API,在 Windows 平臺上由特定 Win32 API 呼叫時,應該獨佔使用。 以 .NET 6 或更新版本為目標時,請在所有平臺上使用 NativeMemory 類別來配置原生記憶體。 以 .NET 6 或更早版本為目標時,請在所有平臺上使用 AllocCoTaskMem 來配置原生記憶體。

ReAllocHGlobalMarshal 類別中兩個記憶體重新配置 API 方法之一。 (Marshal.ReAllocCoTaskMem 是另一個。

這個方法會從 Kernel32.dll公開 Win32 GlobalReAlloc 函式。 傳回的指標可能與原始指標不同。 如果不同,原始記憶體區塊的內容已複製到新的區塊,而且原始記憶體區塊已釋出。

適用於

另請參閱