Вы не определяете размер для массива a[]
, поэтому появляется сообщение об ошибке.Массивы должны иметь указанный размер.В вашем случае вам нужно использовать оператор new[]
для выделения массива после определения этого размера от пользователя, например:
#include <iostream>
int main() {
int *a;
int b;
std::cin >> b;
a = new int[b];
for(int i = 0; i < b; ++i)
std::cin >> a[i];
for(int c = b - 1; c >= 0; --c)
std::cout << a[c] << std::endl;
delete[] a;
return 0;
}
Однако предпочтительный способ использования массива с динамическим размером в C ++вместо этого использовать стандартный контейнер std::vector
, например:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main() {
std::vector<int> a;
int b;
std::cin >> b;
a.reserve(b);
std::copy_n(
std::istream_iterator<int>(std::cin), n,
std::back_inserter(a)
);
std::for_each(a.rbegin(), a.rend(),
[](int i){ std::cout << i << std::endl; }
);
/* alternatively:
std::reverse(a.begin(), a.end());
for(int i : a)
std::cout << i << std::endl;
*/
return 0;
}