我想从 IntPtr 指针获取数据到字节数组中。我可以使用以下代码来做到这一点:
IntPtr intPtr = GetBuff();
byte[] b = new byte[length];
Marshal.Copy(intPtr, b, 0, length);
但是上面的代码强制从 IntPtr 到字节数组的复制操作。当有问题的数据很大时,这不是一个好的解决方案。
有没有办法将 IntPtr 转换为字节数组?例如,以下工作是否有效:
byte[] b = (byte[])intPtr
这将消除对复制操作的需要。
另外:我们如何确定 IntPtr 指向的数据长度?