En C ++, las matrices de longitud variable no son legales. G ++ permite esto como una "extensión" (porque C lo permite), por lo que en G ++ (sin tratar -pedantic
de seguir el estándar C ++), puede hacer:
int n = 10;
double a[n];
Si desea una "matriz de longitud variable" (mejor denominada "matriz de tamaño dinámico" en C ++, ya que no se permiten las matrices de longitud variable adecuadas), debe asignar memoria de forma dinámica usted mismo:
int n = 10;
double* a = new double[n];
O, mejor aún, use un contenedor estándar:
int n = 10;
std::vector<double> a(n);
Si aún desea una matriz adecuada, puede usar una constante , no una variable , al crearla:
const int n = 10;
double a[n];
De manera similar, si desea obtener el tamaño de una función en C ++ 11, puede usar un constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];