Встроенная инициализация массива - PullRequest
10 голосов
/ 03 января 2011

Я привык использовать

new int[] {1,2,3,4,5};

для инициализации массива.Но, похоже, в настоящее время это больше не работает, я должен явно указать, сколько элементов есть, с

new int[5] {1,2,3,4,5};

, поэтому компиляторы забыли, как считать?

И сделать этозакрытый вопрос, есть ли способ опустить количество элементов?

Ответы [ 2 ]

21 голосов
/ 03 января 2011

Это никогда не работало в текущей версии C ++, вы только смогли инициализировать нулем (или не инициализировать) динамически размещенные массивы.

То, что всегда работало, это нединамически выделенная инициализация массива:

int myarray[] = {1, 2, 3, 4, 5};

Возможно, вы путаете это с этим?

Даже в C ++ 0x недопустимый синтаксис опускать явный спецификатор размера массива в новом выражении.

2 голосов
/ 03 января 2011

C ++ никогда не разрешал инициализировать массив с неизвестным размером элементов, как указано выше. Единственные 2 способа, которые я знаю, это указать количество элементов или использовать указатели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...