J'utilise le C++ depuis quelques années, et aujourd'hui j'ai vu du code, mais comment cela peut-il être parfaitement légal?La taille du tableau au moment de l'exécution sans allocation dynamique est autorisée?
int main(int argc, char **argv)
{
size_t size;
cin >> size;
int array[size];
for(size_t i = 0; i < size; i++)
{
array[i] = i;
cout << i << endl;
}
return 0;
}
Compilé sous GCC.
Comment la taille peut-elle être déterminée à l'exécution sans new
ou malloc
? Pour vérifier une deuxième fois, j'ai fait des recherches sur google et tous les codes similaires aux miens sont censés donner une erreur de taille de stockage.
Même le programme de programmation C++ de Deitel p. 261 états sous Common Programming Error 4.5:
Seules les constantes peuvent être utilisées pour déclarer la taille des tableaux automatiques et statiques.
Enlight moi.
Notez que DMA signifie "l'accès direct à la mémoire" - Je pense que vous vous posez sur l'allocation dynamique –
C ou C++? Choisissez _one_. –
Encore une fois, choisissez un: C ou C++. Cette question est explicitement et seulement sur C; il ne devrait pas y avoir de balise C++. –