Frage:
Trotz der Vorstellung, dass Arrays variabler Länge (VLAs) nicht Teil des C-Standards sind, warum wird der folgende Code kompiliert und ausgeführt? erfolgreich:
#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; } }
Antwort:
Der C-Standard schreibt Compilern nicht vor, VLAs zu unterstützen. Allerdings können Compiler-Anbieter VLAs als Erweiterung anbieten. Beispielsweise unterstützen GCC-Versionen 4.7 und höher VLAs.
VLAs wurden ursprünglich zur Aufnahme in C 14 vorgeschlagen, aber nicht akzeptiert. Sie wurden auch in späteren C 17-Revisionen nicht berücksichtigt.
Das obige ist der detaillierte Inhalt vonWarum werden meine Arrays variabler Länge trotz des Standards in C kompiliert und ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!