struct成员初始化

MRM*_*MRM 0 c++ arrays struct

我有一个像这样的定义结构:

typedef struct tag_GLOBAL_VAR
{
    int array1[4];
    int array2[5];
    .......
    int array20[40];
 }GLOBAL_VAR;
Run Code Online (Sandbox Code Playgroud)

此结构用于在某个类中定义变量:

GLOBAL_VAR g_GlobalVar;
Run Code Online (Sandbox Code Playgroud)

然后在另一个类中使用,如下所示:

extern GLOBAL_VAR g_GlobalVar;

class constructor;

class destructor;

int class::Start()
{
     //g_GlobalVar.array1 = {1,2,3,4};
     //g_GlobalVar.array4 = {1,2,3};
     some code;
 }
Run Code Online (Sandbox Code Playgroud)

我的问题是,我无法初始化(注释行)这样的2个数组,我得到了error C2059: syntax error : '{'VS. 为什么这是错误的,哪个是解决方案呢?

klm*_*123 5

这是错误的,因为这不是初始化,而是设置新值.在声明g_GlobalVar时,您的数组已经初始化.

我看到2个解决方案:A)创建新数组,像尝试一样初始化它们,并在循环中复制数组中的新数组; B)分别设置每个数组的每个条目.