C# Marshal的使用,非托管内存中分配内存注意的问题

IntPtr ptr = Marshal.AllocHGlobal(704* 576 * 3);

如果没有手动释放内存,会有内存溢出;

发生OutOfMemoryException 没有足够的内存继续执行程序时引发的异常。

调用Marshal.AllocHGlobal必须调用 Marshal.FreeHGlobal(ptr);来手动释放内存,即使调用GC.Collect();方法也无法释放。

发布了163 篇原创文章 · 获赞 264 · 访问量 107万+

猜你喜欢

转载自blog.csdn.net/u011555996/article/details/103916447
今日推荐