Довольно часто размер массива, который планируется использовать в программе, неизвестен. Например, требуется ввести размер массива с клавиатуры, заполнить его случайными числами и вывести на экран. Очевидное решение
cout << "Введите размер массива:\n";
cin >> size;
int numbers[size];
как уже было замечено, оказывается неправильным, поскольку передавать в качестве размера массива переменную нельзя. Решить проблему можно следующим образом: размер массива указать с запасом так, чтобы в него точно поместились все элементы, а фактический размер массива ввести с клавиатуры:
//Массив может хранить не более 100 элементов
int numbers[100];
//Вводим размер массива с клавиатуры
int size;
cout << "Введите размер массива < 100:\n";
cin >> size;
//Заполняем массив случайными числами
for (int i=0; i<size; i++) {
numbers[i] = rand()%100;
}
//Выводим массив на экран
for (int i=0; i<size; i++) {
cout << numbers[i] << " ";
}
Обратите внимание на то, что память выделена под 100 элементов, но фактически работа производится элементами, количество которых определено переменной size.
