我有一个字节数组(来自套接字),我想把它复制到一个结构中。我已经不再使用Marshal.Copy,因为据我所知,它分配的是托管内存而不是堆栈内存。(数据以相当快的速度到来,保存到磁盘之前的生命周期很短,因此我希望避免创建大量生命周期较短的托管对象。)
如何将byte[]中的字节逐个复制到结构中?
发布于 2011-03-14 22:49:20
最终代码如下所示:
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倍
https://stackoverflow.com/questions/5298306
复制相似问题