int length = 0;
int arrA[length];
Это создает массив размером ноль
cout << "Enter the length : ";
cin >> length;
Это устанавливает для переменной length
значение, введенное пользователем, но не меняет размер arrA
который имеет уже был создан .
Очевидно, вы думаете, что при изменении переменной length
изменится и массив arrA
, но это не так.
Поскольку вы обращаетесь к элементам массива с нулевым размером, поведение вашей программы не определено.
Кроме того, весь этот подход неверен, потому что
int length;
...
int arrA[length];
не юридический C ++. Поскольку length
- переменная, это массив переменной длины или VLA. VLA разрешены в C, но не разрешены в C ++.
Лучший способ написать этот код на C ++ - использовать вектор. Вектор - это улучшение C ++ для массива C.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int length;
cout << "Enter the length : ";
cin >> length;
vector<int> arrA(length);
...