如何把我的结构实例拷贝

happycoders 2003-08-19 07:02:33
环境:vc++ 6.0
结构定义:
typedef struct _GENERAL_CONTEXT_
{
std::string LocalIpAddress;
unsigned short VsipPort;
SOCKET Socket;
fd_set SetOfSockets;
CB pErrorCallback;
CB pLogCallback;
unsigned short TransactionNumber;
ofstream OutputFile;
std::list< SN_DEVICE > DeviceList;

}GENERAL_CONTEXT, *PGENERAL_CONTEXT;

其中sn_device的定义为

typedef struct _SN_DEVICE_
{
std::list< SN_DEVICE_CAPABILITIES > CapabilitiesList;
std::list< PVSIP_MEDIA_CONTROL_PROPRIETARY_CONFIG > ProprietaryConfigParameterPtrList;
VSIP_DISCOVERY_PING_INFO VsipDPingInfo;
GUID guid;
unsigned short Fabricant;
unsigned short Version;
eTYPE UnitType;

}SN_DEVICE, *PSN_DEVICE;

如果AB都是GENERAL_CONTEXT结构实例

如果将结构A完整复制到B。听说要写个COPY的函数,但我不会呀。
请大侠给出一点代码吧,50分相送




...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
widewave 2003-08-19
  • 打赏
  • 举报
回复
一个省事的方法。先使用memcpy,如果有必要,再对每个指针new出内存,在对指针成员所指向的内存使用memcpy。或许可以省点事,但是你必须知道指针是不是空。
widewave 2003-08-19
  • 打赏
  • 举报
回复
happycoders(编程……累呀):
你为什么要复制如此复杂的结构呢?
happycoders 2003-08-19
  • 打赏
  • 举报
回复
memcpy不行呀,结构里面有指针呀。

传入两个结构体指针,然后一项一项地赋值吧
这个结构太复杂了,我都不知道应该如何一项一项地赋值,有没更好的方法?
zcchm 2003-08-19
  • 打赏
  • 举报
回复
c++的struct与class基本上是一个东西;
所以如果你要是对它做复制运算,必须实现它的copy赋值函数,当然如果编译器的bitwise copy能够满足要求的话,不必多此一举。

参考一下类的拷贝赋值函数怎么写的吧。
fwbmail 2003-08-19
  • 打赏
  • 举报
回复
memcpy不行吗?
yakai 2003-08-19
  • 打赏
  • 举报
回复
高级一些的编译器好像是支持直接赋值的,不需要另写函数

写函数也无所谓,传入两个结构体指针,然后一项一项地赋值吧,

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧