不确定是否要将IntPtr获取到数组中,但可以使用Mashal复制数据以与非托管代码一起使用.复印件:
IntPtr unmanagedPointer = Marshal.AllocHGlobal(bytes.Length);
Marshal.Copy(bytes, 0, unmanagedPointer, bytes.Length);
// Call unmanaged code
Marshal.FreeHGlobal(unmanagedPointer);
或者,您可以声明一个具有一个属性的 struct ,然后使用Marshal.PtrToStructure,但这仍然需要分配非托管内存.
Edit:此外,正如Tyalis指出的,如果不安全代码对您来说是一个选项,那么您也可以使用fixed