Maison > Article > développement back-end > Pourquoi mes tableaux de longueur variable se compilent-ils et s'exécutent-ils en C malgré la norme ?
Question :
Malgré l'idée selon laquelle les tableaux de longueur variable (VLA) ne font pas partie du standard C, pourquoi le code suivant est-il compilé et exécuté avec succès :
#include <iostream> using namespace std; int main() { int n; cin >> n; int a[n]; for (int i=0; i<n; i++) { a[i] = i; } for (int i=0; i<n; i++) { cout << a[i] << endl; } }
Réponse :
Le standard C n'oblige pas les compilateurs à prendre en charge les VLA. Cependant, les fournisseurs de compilateurs peuvent inclure des VLA en tant qu'extension. Par exemple, les versions 4.7 et ultérieures de GCC prennent en charge les VLA.
Les VLA ont été initialement proposées pour inclusion dans C 14 mais n'ont pas été acceptées. Ils n'ont pas non plus été inclus dans les révisions ultérieures du C 17.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!