有人知道为什么在我尝试在结构体内定义数组时会出现这个错误吗?
struct test{
int idk[] = { 1,2,3 };
};
为什么数组idk是不完整类型或其他东西?
提前致谢。
附言: 我需要这个以便能够从测试结构中访问这些数组。
当在本地作用域中声明变量时(例如在函数体中),您可以这样做,编译器不会抱怨,它会推断您的意思是一个由3个int元素组成的数组。
void someFunc()
{
int idk[] = { 1,2,3 }; // Ok, so idk is in fact a int[3];
// Do whatever work...
}
struct test
{
int idk[3] = { 1,2,3 };
};
array bound cannot be deduced from an in-class initializer
因此,将片段更改为
struct test{
int idk[3] = { 1,2,3 };
int idk[3] = { 1,2,3 };
。 - Jakube