首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中使用指针将数据从byte[]复制到结构

在C#中使用指针将数据从byte[]复制到结构
EN

Stack Overflow用户
提问于 2011-03-14 20:04:40
回答 1查看 593关注 0票数 0

我有一个字节数组(来自套接字),我想把它复制到一个结构中。我已经不再使用Marshal.Copy,因为据我所知,它分配的是托管内存而不是堆栈内存。(数据以相当快的速度到来,保存到磁盘之前的生命周期很短,因此我希望避免创建大量生命周期较短的托管对象。)

如何将byte[]中的字节逐个复制到结构中?

EN

回答 1

Stack Overflow用户

发布于 2011-03-14 22:49:20

最终代码如下所示:

代码语言:javascript
复制
unsafe void CastData(out SomeStructure someStruct, byte[] bytes)
{
    fixed (byte* pSource = bytes)
    {
        fixed (SomeStructure* pDest = &someStruct)
        {
            *pDest = *((SomeStructure*)pSource);
        }
    }
}

据我所知,这应该是完全确定的和“安全的”。

假设它是,那么我发现不安全的方法是近似的。比(例如) http://thecodeisart.blogspot.com/2008/11/with-this-class-you-can-easy-convert.html显示的方法快31倍

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

https://stackoverflow.com/questions/5298306

复制
相关文章

相似问题

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