W C ++ tablice o zmiennej długości nie są dozwolone. G ++ pozwala na to jako „rozszerzenie” (ponieważ C na to pozwala), więc w G ++ (bez konieczności -pedantic
przestrzegania standardu C ++) możesz:
int n = 10;
double a[n];
Jeśli chcesz mieć „tablicę o zmiennej długości” (w C ++ lepiej nazywaną „tablicą o zmiennej długości”, ponieważ tablice o zmiennej długości są niedozwolone), musisz samodzielnie przydzielić pamięć dynamicznie:
int n = 10;
double* a = new double[n];
Lub, jeszcze lepiej, użyj standardowego pojemnika:
int n = 10;
std::vector<double> a(n);
Jeśli nadal chcesz mieć odpowiednią tablicę, możesz użyć stałej , a nie zmiennej , podczas jej tworzenia:
const int n = 10;
double a[n];
Podobnie, jeśli chcesz uzyskać rozmiar z funkcji w C ++ 11, możesz użyć constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];