首页 新闻 会员 周边

怎样保证结构体是在一片连续的空间上 c#的

0
悬赏园豆:50 [已解决问题] 解决于 2010-01-09 13:24

结构如下

public struct UpdateKeyWords
    {
        public byte m_ucTableType;
        public byte m_ucUpdateType;
        public byte m_ucOperateType;
        public UInt32 counts;

        public SubKeyword[] keys;//动态开辟
    }

    public struct SubKeyword 

    {
        public UInt32 m_uiWordLen;
        public byte[] m_szWord;//动态开辟
    }

cyb的主页 cyb | 初学一级 | 园豆:100
提问于:2010-01-06 17:52
< >
分享
最佳答案
0

在结构体上面加上这个属性 

    [StructLayout(LayoutKind.Sequential, Pack = 0)]

    public struct SubKeyword 

    {
        public UInt32 m_uiWordLen;

   [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
        public byte[] m_szWord;//动态开辟
    }

收获园豆:50
一滴血 | 小虾三级 |园豆:1602 | 2010-01-07 10:26
跟前面的结构中的地址不相连哦,试了一下数据不对啊,请指教!
cyb | 园豆:100 (初学一级) | 2010-01-07 11:07
@cyb:以上是控制结构体内的数据在连续的地址空间
一滴血 | 园豆:1602 (小虾三级) | 2010-01-07 11:28
@cyb:好像不能控制结构体与结构体在连续的地址空间
一滴血 | 园豆:1602 (小虾三级) | 2010-01-07 11:29
@一滴血:虽然不能解决我的问题,不过分还是给你吧,谢谢,我自己一个一个去序列化。
cyb | 园豆:100 (初学一级) | 2010-01-09 13:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册