探索
C#中如何替代C/C++中的malloc函数(非托管指针)
这个问题是在我将pi_agm.c移植到C#时研究的,话不多说,直接进入正题。 提示:如果你从来没有用过指针,请先学习指针的含义以及用法。 首先在类名前面加入unsafe关键字,例如 unsafe class Program 这是由于C#程序托管于.NET平台之上,对指针的操作是有危险性的。并且要在Properties(在解决方案资源管理器中)中勾选“允许不安全代码(F)”。 然后再引用中加入: using System.Runtime.InteropServices; 这是非托管代码类。我们就要用到这个类的Marshal.AllocHGlobal与Marshal.FreeHGlobal。下面用一个例子解释一下用法。例如,在C中有以下语句: short *a; a = (short*)malloc(sizeof(short)*SIZE); //程序内容 free(a); 那么在C#中就要写成: short* a;