如何将指针转换为字节数组?
第一个字节表示后面的字节数。
发布于 2010-07-14 05:47:04
安全的做法是复制指向的数据。
如果你有一个字节*,那么你当然可以自己写代码:
byte* source = whatever;
int size = source[0]; // first byte is size;
byte[] target = new byte[size];
for (int i = 0; i < size; ++i)
target[i] = source[i+1];很简单。
如果你有一个IntPtr而不是一个字节*,那么你可以使用这个有用的方法:
http://msdn.microsoft.com/en-us/library/ms146631.aspx
Marshal类上有很多有用的方法。
发布于 2010-07-14 05:41:56
嗯,byte*不是数组对象。您可以获得数据的地址(使用fixed等),但是任意的byte*不必是数据的起始位置-例如,它可以位于偏移量17处。
因此,我推荐以下两种方法:
byte[],而不是byte[],然后copy over 所需的数据
https://stackoverflow.com/questions/3241723
复制相似问题