@Nulltiton

Как задать размерность массива при помощи константы?

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

Код:
const int size = 10; // размерность массива
int a[size];
  • Вопрос задан
  • 734 просмотра
Пригласить эксперта
Ответы на вопрос 3
@res2001
Developer, ex-admin
Задай с помощью defineа.
Размерность статического массива должна быть известна на этапе компиляции. А значение константы в общем случае может быть не извесно при компиляции. К сожалению в Си незавезли из плюсов constexpr.
Ответ написан
vabka
@vabka
Токсичный шарпист
1. Покажи полностью код
2. Не размерность, а размер
3. Что за компилятор?

Вот это на gcc нормально собирается:
void main() {
 const int size = 10;
 int array[size];
}
Ответ написан
@rPman
ты свой массив может создать нужного размера уже в процессе выполнения а не на этапе компиляции, тогда размер может быть в переменной
int *a=new int[size];
int *a это определение массива без инициализации, размер компилятору массива неизвестный, а саму инициализацию проводить оператор new а значит где то в конце нужно память освободить с помощью delete

upd. это было для c++
ну а для си получается надо пользоваться malloc и free соответственно
int *a=(int*)malloc(size*sizeof(int));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы