结构内的数组

Dan*_*aló 4 c++ arrays struct

我想创建一个结构,其中包含固定大小的数组:

struct smt{
   int array1[3];
   int array2[10];
   int bananas;
};
Run Code Online (Sandbox Code Playgroud)

这样我就可以在主代码中使用它了.但是,当我尝试填充数组时,我总是会收到错误:

int main(){
   smt name;
   name.array1 = {1,2,3};

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误在name.array1 = {...}; 线:

error C2059: syntax error : '{'
error C2143: syntax error : missing ';' before '{'
error C2143: syntax error : missing ';' before '}'
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.我试图找到类似的问题但到目前为止还没有找到任何帮助.

Mar*_*oun 5

如果它不在初始化中,你就不能这样做.你应该做:

name.array1[0] = 1;
name.array1[1] = 2;
name.array1[2] = 3;
Run Code Online (Sandbox Code Playgroud)

看到这个有用的答案:

它不仅仅是数组,除了定义之外,你不能为任何点提供初始值.人们有时会引用像int i这样的第二种陈述; i = 0; 作为"初始化我".实际上它正在分配给i,它以前拥有一个不确定的值,因为它没有被初始化.称这种"初始化"很少令人困惑,但就语言而言,那里没有初始化器.