logo search
Лабораторная работа

Инициализация двумерного массива

Инициализация двумерного массива проводится по строкам, например, для того чтобы получить вышеописанный массив a, можно было бы провести следующую инициализацию:

int a[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};

Здесь первый размер массива будет определен компилятором. Следует отметить, что второй размер массива должен быть всегда указан. Это необходимо для того, чтобы сообщить компилятору размер строки массива, без которого компилятор не может правильно разместить двумерный массив в памяти ЭВМ.

Для инициализации двумерного массива символов можно использовать упрощенный синтаксис инициализации строк:

char s[][17] = {"Строка 1", "Длинная строка 2", "Строка 3"};

Размер памяти, заказанный под каждую строку в этом случае должен быть равным длине самой длинной строки с учетом символа завершения строки. При этом, для части строк (строка 1 и строка 3) будет выделено излишнее количество памяти. Таким образом, хранение строк различной длины в двумерном массиве символов недостаточно эффективно с точки зрения использования памяти.