首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从byte*转换为byte[]

从byte*转换为byte[]
EN

Stack Overflow用户
提问于 2010-07-14 05:33:14
回答 2查看 5.5K关注 0票数 4

如何将指针转换为字节数组?

第一个字节表示后面的字节数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-14 05:47:04

安全的做法是复制指向的数据。

如果你有一个字节*,那么你当然可以自己写代码:

代码语言:javascript
复制
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类上有很多有用的方法。

票数 7
EN

Stack Overflow用户

发布于 2010-07-14 05:41:56

嗯,byte*不是数组对象。您可以获得数据的地址(使用fixed等),但是任意的byte*不必是数据的起始位置-例如,它可以位于偏移量17处。

因此,我推荐以下两种方法:

  • 传递byte[],而不是
  • (或)创建新的byte[],然后copy over

所需的数据

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3241723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档