2013-01-21 79 views
-3

我想将结构x复制到另一个具有嵌套x的结构y。复制到嵌套结构在C

例如:

#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; 
} 

我得到一个编译器错误:错误:不兼容的类型分配从类型类型“x_TYPE“时XY_TYPE ”。

请让我知道是否有人知道为什么会发生这种情况。

+0

我不明白你想要做什么。 – Dariusz

+0

你在整个地方继续使用“x”的方式令人困惑。 – cnicutar

+2

你的伪代码是**可怕的**(例如,没有定义类型'x';有一个'x_TYPE',但它是相同的吗?还有'y_object',我假设它是类型'y_TYPE'而不是'y'不包含'x_object')。如果您向我们提供*实际*代码来证明您认为不应得到的错误,我们可能会提供帮助。 –

回答

2

这是你在找什么?

XY_TYPE *yy; /* assume this is allocated already */ 

void copyXIntoYY(XY_TYPE *xx) 
{ 
    yy->u.y_object.nested_x = xx->u.x_object; 
} 

从问题中不清楚你想要做什么。