我想创建一个结构,其中包含固定大小的数组:
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)
任何帮助,将不胜感激.我试图找到类似的问题但到目前为止还没有找到任何帮助.
如果它不在初始化中,你就不能这样做.你应该做:
name.array1[0] = 1;
name.array1[1] = 2;
name.array1[2] = 3;
Run Code Online (Sandbox Code Playgroud)
看到这个有用的答案:
它不仅仅是数组,除了定义之外,你不能为任何点提供初始值.人们有时会引用像int i这样的第二种陈述; i = 0; 作为"初始化我".实际上它正在分配给i,它以前拥有一个不确定的值,因为它没有被初始化.称这种"初始化"很少令人困惑,但就语言而言,那里没有初始化器.