在dotNET中我们可以编写非托管代码,在哪里可以动态分配内存(通过关键字:stackalloc,new),使用指针等。
可以释放内存(例如通过C ++中的删除)?
答案 0 :(得分:7)
这取决于如何您分配内存。
例如,如果使用AllocHGlobal分配内存:
double* vertices = (double*)Marshal.AllocHGlobal(
3 * count * Marshal.SizeOf(typeof(double)));
您可以分配给定大小的双精度数组。
在必须致电FreeHGlobal
后释放内存 Marshal.FreeHGlobal((IntPtr)vertices);
还有其他用于分配COM任务内存的功能,例如
答案 1 :(得分:-1)
尝试使用此代码以免费
Marshal.FreeHGlobal((IntPtr)vertices);