多个结构体嵌套,并且各部分参数都有值,需要将这里面其中一部分参数赋值给另一个结构体,有什么比较简单或者便利的办法吗?或者怎么样可以建立一下两个结构体之间的关系?
memcpy 直接拷贝
int arr[3] = {1,2,3};
int*p = arr;
for(;p!=arr+3;p++){
printf("%d\n",*p);
}
return 0;
}
定义operator=,或者转换函数
供参考:
#include <stdio.h>
#include <string.h>
typedef struct data // 定义公共数据域部分
{
int n;
//...
}Data;
struct MyStruct
{
Data data;
//...
};
struct MyStruct1
{
Data data;
//...
};
int main()
{
struct MyStruct my;
struct MyStruct1 my1;
my.data.n = 100;
memcpy(&my1.data, &my.data, sizeof(Data));
printf("%d", my1.data.n);
return 0;
}