C# 使用Intptr后究竟需不需要释放占用的内存
通过Marshal申请的AllocHGlobal申请的内存空间需要释放。
public static IntPtr intPtr = (IntPtr)Marshal.AllocHGlobal(2048);
使用PInvoke 返回的IntPtr不用释放;
综述,谁创建谁负责回收,如果是借来的无需负责回收
回收代码:
Marshal.FreeHGlobal(intPtr);
通过Marshal申请的AllocHGlobal申请的内存空间需要释放。
public static IntPtr intPtr = (IntPtr)Marshal.AllocHGlobal(2048);
使用PInvoke 返回的IntPtr不用释放;
综述,谁创建谁负责回收,如果是借来的无需负责回收
回收代码:
Marshal.FreeHGlobal(intPtr);