En C ++, les tableaux de longueur variable ne sont pas autorisés. G ++ permet cela comme une "extension" (car C le permet), donc en G ++ (sans être -pedantic
sur le point de suivre le standard C ++), vous pouvez faire:
int n = 10;
double a[n];
Si vous voulez un "tableau de longueur variable" (mieux appelé "tableau de taille dynamique" en C ++, puisque les tableaux de longueur variable appropriés ne sont pas autorisés), vous devez soit allouer dynamiquement de la mémoire vous-même:
int n = 10;
double* a = new double[n];
Ou, mieux encore, utilisez un conteneur standard:
int n = 10;
std::vector<double> a(n);
Si vous voulez toujours un tableau approprié, vous pouvez utiliser une constante , pas une variable , lors de sa création:
const int n = 10;
double a[n];
De même, si vous souhaitez obtenir la taille d'une fonction en C ++ 11, vous pouvez utiliser un constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];