Почему размер статического массива нельзя сделать переменным?

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

Я определяю массив в одном из дочерних файлов следующим образом.

static int arr[siz];

Здесь siz— глобальная переменная, доступная для дочернего файла. Но компилятор gcc выдает следующую ошибку:

:  : error : storage size of ‘arr’ isn’t constant

Почему я не могу определить статическиймассив переменного размера?

РЕДАКТИРОВАТЬ: Это кажется проблемой только для типа static int. Если я изменю тип переменной arrс static intна int, ошибка исчезнет, ​​хотя размер массива по-прежнему зависит от переменной размер.

12
задан Antti Haapala 6 August 2019 в 03:48
поделиться