C ++: Как объявить массив в верхней части метода? - PullRequest
0 голосов
/ 02 июля 2010

Я хотел бы объявить массив в верхней части моего метода, но он не компилируется:

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

    // …

    // C2059, C2143, C2143
    arr[] = {1, 2, 3}; 
}

Что я здесь не так делаю?

ОБНОВЛЕНИЕ Я знаю, что C ++ не заставляет меня делать это таким образом, но соглашение проекта требует, чтобы все переменные были объявлены в начале их метода.

Ответы [ 3 ]

5 голосов
/ 02 июля 2010

Когда вы объявляете массив в C / C ++, вам нужно указать размер.Если вы не укажете размер, вам нужно будет определить элементы массива в том же операторе объявления, например:

int arr[] = {1, 2, 3};
4 голосов
/ 02 июля 2010

Это просто неверный синтаксис. Если вы хотите сделать arr = { ... };, это должно произойти, когда вы объявите переменную. Но C ++ не заставляет вас объявлять переменную в начале функции, так что вы можете сделать:

Foo Bar() {
    // other stuff goes here
    // ...
    int arr[] = {1, 2, 3};
}
1 голос
/ 02 июля 2010

Вы не можете.Либо нужно указать соглашение проекта, либо код инициализации:

Foo Bar() {
    int a[3];
    ...
    a[0] = 1;
    a[1] = 2;
    a[2] = 3;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...