Пожалуйста, посмотрите на 2 следующих программных сегментов:декларация массива во время выполнения и времени компиляции
int a,b;
cin>>a>>b;
int arr1[a*b];
int arr2[a];
теперь, если я даю входное значение «а» = 100000 и «B» = 5, программа показывает сообщение об ошибке выполнения, потому что переполнения памяти я думаю. Теперь посмотрим на другой сегмент кода:
int arr1[500000];
int arr2[100000];
Теперь, когда я объявляю массив такого же размера, как показано в коде выше, программа работает отлично. Почему это так?
массивы переменной длины не поддерживаются в C++. – haccks
Что сказал @haccks. C-style массивы и размеры 'std :: array' ДОЛЖНЫ быть известны во время компиляции. Вы можете использовать 'std :: vector' или динамически выделять массив. – Gambit
* «Программа показывает ошибку времени выполнения из-за переполнения памяти, я думаю» * - Не перефразируйте сообщение об ошибке. Используйте copy и paste, чтобы добавить его в вопрос. –