我想在我的方法的顶部声明一个数组,但它没有编译:
Foo Bar()
{
int arr[]; // C2133
// …
// C2059, C2143, C2143
arr[] = {1, 2, 3};
}
我在这里做错了什么?
UPDATE 我知道C ++不会强迫我这样做,但是项目的约定要求在方法顶部声明所有变量。
答案 0 :(得分:5)
在C / C ++中声明数组时,需要指定大小。如果未指定大小,则需要在同一声明语句中定义数组元素,如下所示:
int arr[] = {1, 2, 3};
答案 1 :(得分:4)
这只是无效的语法。如果您想要arr = { ... };
,则必须在声明变量时使用。但是C ++并没有强制你在函数的开头声明变量,所以你可以这样做:
Foo Bar() {
// other stuff goes here
// ...
int arr[] = {1, 2, 3};
}
答案 2 :(得分:1)
你做不到。项目的约定需要给出,或者你的初始化代码是:
Foo Bar() {
int a[3];
...
a[0] = 1;
a[1] = 2;
a[2] = 3;
}