C++:如何在方法的顶部声明一个数组?

Nic*_*ner 0 c++ compiler-errors

我想在我的方法的顶部声明一个数组,但它不是在编译:

Foo Bar()
{
    int arr[]; // C2133

    // …

    // C2059, C2143, C2143
    arr[] = {1, 2, 3}; 
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

更新我知道C++不会强迫我这样做,但是项目的约定要求在方法顶部声明所有变量.

Ale*_*vis 5

在C/C++中声明数组时,需要指定大小.如果未指定大小,则需要在同一声明语句中定义数组元素,如下所示:

int arr[] = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

  • 如果您不知道数组的大小并且无法在声明时指定元素,则需要使用指针并动态分配内存,但这将是另一个问题的主题. (3认同)