关于void 指针问题

Jacky2710 2008-10-16 10:14:06
各位大侠
小弟定义了一个结构体,里面又包含了一个结构体,例如:
struct suctGroup
{
struct suctGroup1
{
char GroupName[32];
int GroupID;

} Group1;


int GroupID;
char GroupName[32];
}Group;
我定义了一个函数 function(void *p,sizeof(Group)),打算用memcpy将现有的结构拷贝到另一内存,那指针应该如何递加,
是p=p+sizeof(Group.Group1.GroupName)吗,但这样好像不行,请赐教。
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jacky2710 2008-10-16
  • 打赏
  • 举报
回复
问题解决,p=(char*)p + Len;
LIANGZIYINGXIONG 2008-10-16
  • 打赏
  • 举报
回复
教你一招char *pGroup = (char *)&Group;
这样就可以用一个char型的指针指向这个结构,最后指针只需要一个字节一个字节的移动就可以了。
记得给加分啊,回答了那么多的问题,尽然没几个人给分的。
jia_xiaoxin 2008-10-16
  • 打赏
  • 举报
回复
你应该这样理解
嵌套结构就是将结构的声明放在另一个类中,它跟普通类型的含义是一样的
也就是

struct suctGroup
{
struct suctGroup1
{
char GroupName[32];
int GroupID;
} Group1;
int GroupID;
char GroupName[32];
}Group;


struct suctGroup1
{
char GroupName[32];
int GroupID;
};
struct suctGroup
{
suctGroup1 Group1;
int GroupID;
char GroupName[32];
}Group;

除了作用域外,其它含义是一样的。



Jacky2710 2008-10-16
  • 打赏
  • 举报
回复
问题是我只有这个结构体的指针和大小,里面的内容根本不知道,也就是说memcpy(,p,);中的p 要变化;
lsldd 2008-10-16
  • 打赏
  • 举报
回复
你的指针P是指向了哪里?Group还是Group.Group1?
如果你要拷贝Group里面Group1的GroupName[32],用memcpy(XXX, Group.Group1.GroupName, sizeof(GroupName))不就行了?
为什么要挪动指针
Jacky2710 2008-10-16
  • 打赏
  • 举报
回复
我根据此struct建了一棵树,现在想将struct的内容填到树里面,struct在内存是一串二进制,我想根据树的大小截取struct里面的内容,现在的问题是我用memcpy 拷贝了其中的一个数据,怎么使p指针指向下一个数据,简单说就是p是如何加减??
JJZHK 2008-10-16
  • 打赏
  • 举报
回复
我也不明白LZ的意思,看来我们的理解力太差了。唉。老了。。。。。。
boys2002 2008-10-16
  • 打赏
  • 举报
回复
不是太理解楼主的 意思

麻烦说清楚一点嘛
····················


哈哈 拿分走人 一会回来
Jacky2710 2008-10-16
  • 打赏
  • 举报
回复
全部都要拷贝,但因为我建了令一个树模板结构,所以要先拷贝Group.Group1.GroupName
JJZHK 2008-10-16
  • 打赏
  • 举报
回复
你说的结构拷贝,是拷贝suctGroup结构,还是拷贝suctGroup1结构?不明白。
xxgamexx 2008-10-16
  • 打赏
  • 举报
回复
结构体镶嵌一个结构体 这样有意义么?

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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