Объявление массива с непостоянной переменной размера [дубликат]

На этот вопрос уже есть ответ здесь:

Какой компилятор я должен доверять? 4 ответа

Я готовлюсь к тесту на C и читаю резюме C, которое я скачал с какого-то сайта. Написано, что не разрешено писатьarr[i] гдеi переменная Единственный способ сделать это с помощью malloc.
Тем не менее, я написал следующий код, и он компилируется без предупреждений и без ошибок на valgrind:

int index = 5;
int a4[index];

a4[0] = 1;
a4[1] = 2;

int index2;
scanf("%d",&index2);
int a5[index2];
a5[0] = 1;
a5[1] = 2;

Так что же является правдой за объявлениями массивов? благодарю вас!

Ответы на вопрос(1)

Ваш ответ на вопрос