LINUX.ORG.RU

История изменений

Исправление aureliano15, (текущая версия) :

компилятор вроде автоматом создаст массив по количеству строк

Если ты не инициализируешь массив, то должен явно указать его размерность в квадратных скобках.

Если массив при объявлении сразу инициализируется, то размерность указывать необязательно. В этом случае размерность массива будет равна числу элементов, указанных через запятую в фигурных скобках или длине константной строки, включая завершающий 0, если речь идёт о массиве char, инициализируемым строкой (char s[] = "abc").

Если одновременно указать размерность в квадратных скобках при объявлении и явно инициализировать массив, то размерность будет определяться числом, недостающие элементы будут инициализированы 0 (для глобальных и статических массивов) или случайным значением (для локальных массивов), а лишние будут проигнорированы. Т. е. массив int a[2] = {1,2,3,4}; будет идентичен массиву int a[2] = {1,2};, а массив int a[4] = {1,2}; идентичен массиву int a[4] = {1,2,0,0};, если они глобальные или статические (static) либо массиву int a[4] = {1,2,случайное_число_из_стека,случайное_число_из_стека}; в противном случае.

Исправление aureliano15, :

компилятор вроде автоматом создаст массив по количеству строк

Если ты не инициализируешь массив, то должен явно указать его размерность в квадратных скобках.

Если массив при объявлении сразу инициализируется, то размерность указывать необязательно. В этом случае размерность массива будет равна числу элементов, указанных через запятую в фигурных скобках или длине константной строки, включая завершающий 0, если речь идёт о массиве char, инициализируемым строкой (char s[] = "abc").

Если одновременно и указать размерность в квадратных скобках при объявлении, и инициализировать массив, то размерность будет определяться числом, недостающие элементы будут инициализированы 0 (для глобальных и статических массивов) или случайным значением (для локальных массивов), а лишние будут проигнорированы. Т. е. массив int a[2] = {1,2,3,4}; будет идентичен массиву int a[2] = {1,2};, а массив int a[4] = {1,2}; идентичен массиву int a[4] = {1,2,0,0};, если они глобальные или статические (static) либо массиву int a[4] = {1,2,случайное_число_из_стека,случайное_число_из_стека}; в противном случае.

Исходная версия aureliano15, :

компилятор вроде автоматом создаст массив по количеству строк

Если ты не инициализируешь массив, то должен явно указать его размерность в квадратных скобках.

Если массив при объявлении сразу инициализируется, то размерность указывать необязательно. В этом случае размерность массива будет равен числу элементов, указанных через запятую в фигурных скобках или длине константной строки, включая завершающий 0, если речь идёт о массиве char, инициализируемым строкой (char s[] = "abc").

Если одновременно и указать размерность в квадратных скобках при объявлении, и инициализировать массив, то размерность будет определяться числом, недостающие элементы будут инициализированы 0 (для глобальных и статических массивов) или случайным значением (для локальных массивов), а лишние будут проигнорированы. Т. е. массив int a[2] = {1,2,3,4}; будет идентичен массиву int a[2] = {1,2};, а массив int a[4] = {1,2}; идентичен массиву int a[4] = {1,2,0,0};, если они глобальные или статические (static) либо массиву int a[4] = {1,2,случайное_число_из_стека,случайное_число_из_стека}; в противном случае.