如何进行整个结构体的赋值操作?

rainbow_runtao 2014-07-05 01:07:42
目标就是实现把一个结构体里的所有内容赋给另外一个
这是我写的一个copy函数,可是debug的时候temp一直处于失效的状态

求帮忙改改。。感激不尽


struct User
{
char ID[20];
char password[100];
char name[20];
int sex;
int age;
static int count;
void copy(struct User &temp)
{
strcpy(ID,temp.ID);
strcpy(password,temp.password);
strcpy(name,temp.name);
sex=temp.sex;
age=temp.age;
}
}user[1000];//结构体部分

user[count].copy(user_temp);//调用的语句,目的是把user_temp里的内容复制到user[count]里边去。

...全文
5950 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
caiwei_cs 2014-07-07
  • 打赏
  • 举报
回复
糊涂啊。
lin5161678 2014-07-07
  • 打赏
  • 举报
回复
struct a, b; //假设b已经有有效值 a = b; 整体赋值完成 后果自己仔细掂量
赵4老师 2014-07-07
  • 打赏
  • 举报
回复
struct S {
 int i;
 double d;
} s1,s2;
s1.i=1;
s1.d=2.3;
s2=s1;
printf("s2.i==%d,s2.d==%lg\n",s2.i,s2.d);
我看你有戏 2014-07-07
  • 打赏
  • 举报
回复
8楼正解 结构就是这么的方便
下巴 2014-07-05
  • 打赏
  • 举报
回复
引用 1 楼 sdghchj 的回复:
需要Copy么?直接等就行了。 默认的赋值函数就是内存拷贝,memcpy
正解,里面又没有指向堆地址的指针,不需要深拷贝,浅拷贝就行了;
baichi4141 2014-07-05
  • 打赏
  • 举报
回复
啥叫temp一直处于失效的状态?
707wk 2014-07-05
  • 打赏
  • 举报
回复

struct User
{
	char ID[20];
	char password[100];
	char name[20];
	int sex;
	int age;
	static int count;
	void copy(struct User temp)
	{
		strcpy(ID,temp.ID);
		strcpy(password,temp.password);
		strcpy(name,temp.name);
		sex=temp.sex;
		age=temp.age;
	}
}user[1000];//结构体部分

user[count].copy(user_temp);//调用的语句,目的是把user_temp里的内容复制到user[count]里边去。

这样改行吗?
zhuyf87 2014-07-05
  • 打赏
  • 举报
回复
POD数据,直接=就可以了吧。编译器生成的默认的copy函数就可以完成工作了。
帅得不敢出门 2014-07-05
  • 打赏
  • 举报
回复
如果用strcpy那么,src必须是由'\0'结尾的。
sdghchj 2014-07-05
  • 打赏
  • 举报
回复
需要Copy么?直接等就行了。 默认的赋值函数就是内存拷贝,memcpy

69,371

社区成员

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

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