求结构体的深拷贝
时间:2011-12-22
来源:互联网
Struct _mStruct1 mstruct1,Struct _mStruct2 mstruct2,int ID,bool flag;
传送过来时,是结构体的指针
*mstruct1,*mstruct2,ID,flag
因为结构体下字段太多,所以我就定义了一结构体,来接收传来的数据,我定义的结构如下:
C/C++ code
Struct ReciveData { _mStruct1 *mstruct1; _mStruct2 *mstruct2; int *ID; bool *flagl } mReciveData;
memcpy显然不行,而如果重载operate=或者写拷贝构造函数的话,是否只针对我自定义的结构体呢?对于API传来的结构体是否有效?
求应该怎样深拷贝?
作者: lrypower 发布时间: 2011-12-22
Struct ReciveData { _mStruct1 *mstruct1; _mStruct2 *mstruct2; int *ID; bool *flagl ReciveData():mstruct1(NULL),mstruct2(NULL),ID(NULL),flagl(NULL){} ~ReciveData(){if(NULL != mstruct1)delete mstruct1;.....} } mReciveData;
mReciveData.mstruct1 = new mStruct1(mstruct1);
...
作者: qscool1987 发布时间: 2011-12-22
感觉你这里需要一个setData的方法,是不是重载operator=都一样,只要把数据弄进去就行
重载operator=的时候带上API跟一样的参数就能传递数据了吧
作者: imstyle1001 发布时间: 2011-12-22
C/C++ code
Struct ReciveData
{
_mStruct1 *mstruct1;
_mStruct2 *mstruct2;
int *ID;
bool *flagl
ReciveData():mstruct1(NULL),mstruct2(NULL),ID(NULL),flagl(NULL){}
~ReciveData(){i……
mReciveData.mstruct1 = new mStruct1(mstruct1);
大哥,new mStruct1(mstruct1)是不是就已经赋值给我的结构体成员了?new后面的参数mstruct1是否是服务端传过来的数据?
作者: lrypower 发布时间: 2011-12-22
老实写拷贝构造函数吧。。。
作者: hzhxxx 发布时间: 2011-12-22
老实写拷贝构造函数吧。。。
这也只是针对我定义的结构体吧,API传过来的东西怎么操作呢?
作者: lrypower 发布时间: 2011-12-22
引用 4 楼 hzhxxx 的回复:
老实写拷贝构造函数吧。。。
这也只是针对我定义的结构体吧,API传过来的东西怎么操作呢?
干嘛不写类呢 偏要写结构体 搞不懂
作者: jeje1115 发布时间: 2011-12-22
作者: woshiwaiwai 发布时间: 2011-12-22
作者: pengjialaosan 发布时间: 2011-12-22
Struct _mStruct1 mstruct1,Struct _mStruct2 mstruct2,int ID,bool flag;
你是可以直接指定结构体方式来读取数据的,只是这里需要保证对方使用相同的体系结构(大头,小头)还有处理器位数,编译对齐等相关信息,还有如果struct中的数据包含指针,那这种方法也不行。我这里假设struct定义的都是普通的非指针数据,而且上述情况都相同,你可以使用memcpy,或者直接使用类型指针读取。
Struct ReciveData
{
_mStruct1 mstruct1;
_mStruct2 mstruct2;
int ID;
bool flagl
}ReciveData, *PReciveData;
//上面都直接使用类型定义,不是使用指针定义,这样假设你的接收的数据地址为pRecvData,你可以直接访问ID字段:
((PReciveData)pRecvData)->ID
作者: yin138 发布时间: 2011-12-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28