Em C ++, arrays de comprimento variável não são permitidos. G ++ permite isso como uma "extensão" (porque C permite), portanto, em G ++ (sem -pedantic
seguir o padrão C ++), você pode fazer:
int n = 10;
double a[n];
Se você quiser uma "matriz de comprimento variável" (melhor chamada de "matriz de tamanho dinâmico" em C ++, uma vez que matrizes de comprimento variável adequadas não são permitidas), você também precisa alocar memória dinamicamente:
int n = 10;
double* a = new double[n];
Ou, melhor ainda, use um contêiner padrão:
int n = 10;
std::vector<double> a(n);
Se você ainda deseja uma matriz adequada, pode usar uma constante , não uma variável , ao criá-la:
const int n = 10;
double a[n];
Da mesma forma, se quiser obter o tamanho de uma função em C ++ 11, você pode usar constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];