在 dotNET 中,我们可以编写非托管代码,我可以在哪里动态分配内存(通过关键字:stackalloc、new)、使用指针等。
可以释放内存(例如通过 C++ 中的 delete)?
问问题
723 次
2 回答
7
这取决于您如何分配内存。
例如,如果您使用AllocHGlobal分配内存:
double* vertices = (double*)Marshal.AllocHGlobal(
3 * count * Marshal.SizeOf(typeof(double)));
您分配给定大小的双精度数组。
在您必须调用FreeHGlobal后释放该内存
Marshal.FreeHGlobal((IntPtr)vertices);
还有其他用于分配 COM 任务内存的函数,例如
于 2012-08-01T13:39:19.467 回答
-1
尝试使用此代码以释放
Marshal.FreeHGlobal((IntPtr)vertices);
于 2012-08-01T13:33:49.993 回答