wen375827006 2016-09-09 08:30 采纳率: 0%
浏览 3010

unity3d struct 与 byte[] 之间的转换?

我用C#作为unity的脚步,现在我写了一个结构体,想把它转为byte[]类型,方法如下
public static byte[] StructToBytes(object structObj)
{
int size = Marshal.SizeOf(structObj);
IntPtr buffer = Marshal.AllocHGlobal(size);
try
{
Marshal.StructureToPtr(structObj, buffer, true);
byte[] bytes = new byte[size];
Marshal.Copy(buffer, bytes, 0, size);
return bytes;
}
finally
{
Marshal.FreeHGlobal(buffer);
}
}
但是这里出现一个问题,如果结构体里面没数组,能转成功,但是如果有数组,数组部分就会变为别的数据,这是什么原因呢?而且在反转的时候,数组部分数据会丢失

  • 写回答

3条回答

  • threenewbee 2016-09-09 14:59
    关注

    http://blog.csdn.net/masterft/article/details/1699009
    要给你的结构体指定内存布局

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名