复制到C中的嵌套结构
我试图将一个结构x复制到另一个嵌套了x的结构y中 例如:复制到C中的嵌套结构,c,syntax,copy,structure,C,Syntax,Copy,Structure,我试图将一个结构x复制到另一个嵌套了x的结构y中 例如: #define DATASIZE 128 typedef struct { char data[DATASIZE]; } x_TYPE; typedef struct { int number; x_TYPE nested_x; enum boolean error; } y_TYPE; /* ---
#define DATASIZE 128
typedef struct {
char data[DATASIZE];
} x_TYPE;
typedef struct {
int number;
x_TYPE nested_x;
enum boolean error;
} y_TYPE;
/* ---- Values for the type field in xy_union ---- */
#define TYPE_IS_X 0;
#define TYPE_IS_Y 1;
typedef struct {
union { /* structure containing x_object */
x_TYPE x_object; /* or y_object as a union */
y_TYPE y_object;
} u;
int type; /*One of: TYPE_IS_X, TYPE_IS_Y */
} XY_TYPE;
这是我当前复制的方式:
copyXY(XY_TYPE *xx)
{
XY_TYPE *yy; /* assume this is allocated already */
yy->u.y_object.nested_x = *xx; /* ERROR LINE */
return 0;
}
从类型“XY\U type”分配给类型“x\U type”时,我得到一个编译器错误:错误:不兼容类型
如果有人知道为什么会发生这种情况,请告诉我 这就是你要找的吗
XY_TYPE *yy; /* assume this is allocated already */
void copyXIntoYY(XY_TYPE *xx)
{
yy->u.y_object.nested_x = xx->u.x_object;
}
这个问题不清楚你想做什么。我不明白你想做什么。你到处使用“x”的方式令人困惑。你的伪代码太可怕了(例如,没有定义类型
x
;有一个x\u类型
,但这是相同的吗?还有y\u对象
,我假设它的类型是y\u类型
,而不是y
不包含x\u对象
)。如果您向我们提供了实际的代码来演示您认为不应该得到的错误,我们可能会提供帮助。我更新了代码。很抱歉,这是实际的代码。我正在尝试找出如何复制到y_对象中。嵌套的_x“我正在尝试将结构x复制到另一个嵌套了x的结构y中。”-显然不是:您试图将一个结构XY复制到另一个嵌套了x的结构y中。错误表明x不是XY。您在这里不明白什么?