Стандарт C запрещает переход в область функций, где существует VLA.
VLA и вызов функции alloca должны иметь одинаковый результат на низком уровне.
(Я могу ошибаться, так как я всего лишь C, а не программист низкого уровня, но, на мой взгляд, это кажется остроумным)
Так будет ли следующий фрагмент также вести себя неопределенно?
int main()
{
char *p;
goto label1;
{
p = _alloca(1);
label1:
p = NULL;
}
}
Конечно, я не могу ссылаться на p
, но как насчет поведения?
char Array[variableLength];
- person dhein   schedule 23.05.2014