In C ++, gli array di lunghezza variabile non sono legali. G ++ lo consente come "estensione" (perché C lo consente), quindi in G ++ (senza -pedantic
seguire lo standard C ++), puoi fare:
int n = 10;
double a[n];
Se si desidera un "array di lunghezza variabile" (meglio chiamato "array di dimensioni dinamiche" in C ++, poiché non sono consentiti array di lunghezza variabile appropriati), è necessario allocare dinamicamente la memoria:
int n = 10;
double* a = new double[n];
O, meglio ancora, usa un contenitore standard:
int n = 10;
std::vector<double> a(n);
Se vuoi ancora un array corretto, puoi usare una costante , non una variabile , quando lo crei:
const int n = 10;
double a[n];
Allo stesso modo, se vuoi ottenere la dimensione da una funzione in C ++ 11, puoi usare constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];