如何在C中为typdef结构中的数组赋值?

如何在C中为typdef结构中的数组赋值?,c,typedef,C,Typedef,我试图将值分配给typedef结构中的数组,但不断收到语法错误 Error expected '=', ',', ';', 'asm' or '__attribute__' before '.' token 这是我的密码: myfile.h #define Digit12 0x00u #define Digit34 0x01u #define Digit56 0x01u typedef struct { uint8_t trData[3]; } CImageVersio

我试图将值分配给typedef结构中的数组,但不断收到语法错误

Error expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
这是我的密码:

myfile.h

#define  Digit12  0x00u
#define  Digit34  0x01u
#define  Digit56  0x01u

typedef struct
{
   uint8_t trData[3]; 
} CImageVersion;

myfile.c

CImageVersion oImageVersion; // declare an instance

oImageVersion.trData = { Digit12, Digit34, Digit56};
稍后在代码中

otherfile.c

extern CImageVersion oImageVersion;
arry是指针,但如果我将赋值改为

oImageVersion->trData = { Digit12, Digit34, Digit56};

我也犯了同样的错误。我很困惑我做错了什么,当我分配值时,错误直接指向oImageVersion之后,你不能直接分配给数组。您使用的语法仅在定义变量时有效。也就是说,您可以这样做:

CImageVersion oImageVersion = { { Digit12, Digit34, Digit56} };
但不是这个:

CImageVersion oImageVersion;
oImageVersion.trData = { Digit12, Digit34, Digit56};
如果在定义变量时未赋值,则需要分别为每个数组元素赋值:

oImageVersion.trData[0] = Digit12;
oImageVersion.trData[1] = Digit34;
oImageVersion.trData[2] = Digit56;

您不能分配给数组。仅在定义时初始化它或复制到它。请尝试
CImageVersion oImageVersion;//声明一个实例oImageVersion.trData={Digit12,Digit34,Digit56}-->
CImageVersion-oImageVersion={{{Digit12,Digit34,Digit56}
另外,
->
用于指向结构的指针。实际结构使用
而不是分配数组,分配结构:
oImageVersion=(CImageVersion){{{Digit12,Digit34,Digit56}