Размер статического массива должен быть известен к началу компиляции, поэтому нельзя определить предельный размер массива во время выполнения. Но есть выход. Можно задать буфер, размер которого будет достаточным для тех данных, которые будут использоваться. Например, в системе Windows размер буфера консоли составляет 4 килобайта. Больше вам с клавиатуры за один раз ввести не удастся. Но и этого вполне предостаточно, так как если вводить с клавиатуры однозначные числа, то для типа данных int можно задать предельный размер в 2048 элемента. Вводить такое количество руками и ни разу не ошибиться вам придётся мучительно долго, да и незачем.Определив предельный размер массива, теперь вы можете задать необходимый размер под данные, определив его переменной во время выполнения, при этом запретив создавать массив нулевого размера и размера большего, чем его предельный размер.Так как вводить данные в массив вы можете и далее в программе, то изначально установленного размера на 2048 элементов вам может не хватить. В этом случае вы можете задать предельный размер большего размера, но и здесь не всё так гладко. Размер стека данных под процесс система также ограничивает и в какой-то момент может вам отказать в вашем желании. Поэтому статические массивы нужно использовать в тех редких случаях когда проблема производительности является определяющей. Во всех остальных случаях нужно использовать std::vector #include
using namespace std;
int main() {
system("chcp 1251 > nul");
constexpr size_t buffer = 2048;
int sequence[buffer]{};
size_t length = 0;
while (!length || length > buffer) {
cout > length;
}
cout > sequence;
}
system("pause > nul");
}