C#中申请内存大概有两种方式:
1 IntPtr Marshal.AllocHGlobal(int), 使用Marshal.FreeHGlobal(IntPtr)释放
2 IntPtr Marshal.AllocCoTaskMem(int), 使用Marshal.FreeCoTaskMem(IntPtr)释放问题:
1 这两种内存方式有什么区别?哪种情况下使用哪种分配方式?
2 在下面这段代码中,是使用何种内存分方式?还是只是类型转换而未重新分析空间?
...
fixed (Int32* ptr = &CMD)
{
    Marshal.Copy(new IntPtr(ptr), buffer, pos, size);
}
...