Преобразовать переменную int в const int

Из функции было получено значение int поля, с помощью ссылки в параметрах, теперь мне нужно создать массив с размером значения int поля. Как преобразовать int в const int


Ответы (1 шт):

Автор решения: Harry

Вы не поняли сакральный смысл const int при объявлении массива. Важна не константность (неизменяемость во время выполнения) этого размера, а его известность во время компиляции, т.е. по сути это не const, а constexpr.

Поэтому массив надо создавать динамически:

int n;
// Получение значения n

double * а = new double[n];

// Работа с массивом a

delete[] a;  // Освобождение выделенной памяти

а так, конечно, никто не мешает написать

const int m = n;

и это будет работать. Только вот использовать m как размер массива - не получится.

→ Ссылка