В этом посте: https://stackoverflow.com/questions/38326930/cannot-read-full-100000-integer-values-from-a-file-in-cДействительно ли инициировать размерную часть VLA в той же последовательности, что и VLA?
ОП содержит код, где есть много плохого, но одна линия сделал мне особенно любопытными, так как я не был в состоянии смотреть что-нибудь вверх, запрещая его.
Это специфическая линия:
int n = 100000, arr[n];
ли порядок объявления и инициализации неоспоримым обеспечивается?
Итак, я бы предположил, что может случиться так, что n
не был инициализирован, когда объявляется arr
, что, казалось бы, было бы нехорошо.
Но я не смог найти никаких утверждений об этом в проекте iso/iec 9899, не заявив, что он не определен или не определяет его.
Так это, как я предполагаю, не определено поведение? Или это не так?
И в любом случае, то, что правило неоспоримым для этого применены результат 5
Edit:
Это справедливо для C99, тоже?
В этой строке нет _comma operator_. Декларация не является заявлением! – Olaf
@ Олаф: Ах, вы правы, меня уже учили, что здесь запятая выполняет другую работу. Но это меняет результат? делает ли разделение для commatares в декларации порядком? – dhein
Откат назад. Пожалуйста, не редактируйте вопрос после того, как вы получили ответ, так что ответ теряет контекст. – Olaf