In diesem Beitrag: https://stackoverflow.com/questions/38326930/cannot-read-full-100000-integer-values-from-a-file-in-cIst es zulässig, den Größenteil eines VLA in demselben Sequenzpunkt zu initiieren, wie der VLA deklariert wird?
Die OP-Code enthält, wo es mit viel falsch, aber 1 Linie hat mich besonders Kuriosität, da ich nicht in der Lage war, etwas nach oben zu schauen, ist es nicht anzuerkennen.
Dies ist die spezifische Zeile:
int n = 100000, arr[n];
Ist die Reihenfolge der Deklaration und Initialisierung gewährleistet beeing?
Also hier würde ich annehmen, es könnte sogar passieren, dass n
wurde nicht initialisiert, wenn arr
erklärt wird, was offensichtlich nicht gut wäre.
Aber ich konnte im iso/iec 9899 draft weder eine Aussage dazu finden noch sie undefiniert nennen oder definieren.
So ist das, wie ich vermute nicht definiert Verhalten? Oder ist es?
Und so oder so, was die Regel für das Ergebnis wird gerade uses 5
Edit:?
Ist das gilt für C99, auch?
In dieser Zeile befindet sich kein _comma-Operator_. Eine Deklaration ist keine Aussage! – Olaf
@Olaf: Ah, du hast Recht, ich habe schon gelernt, dass hier das Komma eine andere Arbeit macht. Aber verändert das das Ergebnis? stellt die Trennung von Kommata in einer Deklaration die Reihenfolge sicher? – dhein
Die Bearbeitung zurückgerollt. Bitte bearbeiten Sie keine Frage, nachdem Sie eine Antwort erhalten haben, dass die Antwort Kontext verliert. – Olaf