C语言,请问如何将结构体中的结构体拷贝到内存
问题是这样的,比如结构体B是嵌套在结构体A中的,我用memcpy将A拷贝到内存,但是发现A.B的内容没有被拷贝进去,请问如何解决...
问题是这样的,比如结构体B是嵌套在结构体A中的,我用memcpy将A拷贝到内存,但是发现A.B的内容没有被拷贝进去,请问如何解决
展开
4个回答
展开全部
1、可以直接用=符号拷贝,但它有一个条件,这里的赋初值不别的数据类型(如 int a;a=5;)它必须是对结构体中的每个成员以此赋值的。将一个结构体变量的值直接赋给另外一个结构体变量的时候,这两个结构体必须是相同结构体名。
2、不同类型的话,也可以用,一般在做通信方面用的比较多。因为处理协议。发包方按照某个协议结构体填充后,发送;接收方收到时其实是一个很长的字符串。那接收方一般用这种方法:结构体 = (结构体)&字符串, 当然接收方的结构体跟发送方的结构体不一定一样,都是根据协议来的。
2、不同类型的话,也可以用,一般在做通信方面用的比较多。因为处理协议。发包方按照某个协议结构体填充后,发送;接收方收到时其实是一个很长的字符串。那接收方一般用这种方法:结构体 = (结构体)&字符串, 当然接收方的结构体跟发送方的结构体不一定一样,都是根据协议来的。
展开全部
不会的,在实例化A的时候会把A中的属于B部分的一起申请内存
你是通过什么方法来发现A.b没有拷贝进去的?
有代码最好贴出来,大家可以一起分析。
你这样直接说结果别人也没办法的
你是通过什么方法来发现A.b没有拷贝进去的?
有代码最好贴出来,大家可以一起分析。
你这样直接说结果别人也没办法的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把指向结构体的指针拷贝到内存就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不可能啊,能不能把两个结构体的定义贴上来看看?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询