Всегда учат, что размер массивов не может быть выделен во время выполнения в C. Я запустил код, чтобы проверить это, и мой код работает. Я этого не понимаю. Почему?
int n;
int a[n]; //here should be error, but its not//
scanf("%d", &n );
for(int i = 0; i < n; i++)
scanf("%d", &a[i] );
for(i = 0; i < n; i++)
printf("%d", a[i] );
Это должно привести к ошибке, потому что размер массива должен быть объявлен перед компиляцией, но это не так.