Déclarer un tableau avec une variable de taille non constante

J’étudie pour mon test en C et je lis un résumé en C que j’ai téléchargé sur un site. Il est écrit qu’il n’est pas permis d’écrire arr[i]i est une variable. Le seul moyen de le faire est avec malloc.
Cependant, j’ai écrit le code suivant et il comstack sans avertissements et sans erreur sur 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; 

Alors, quelle est la vérité derrière les déclarations de tableau? Je vous remercie!

C99 permet de créer des tableaux de longueur variable sur la stack. Votre compilateur peut prendre en charge cette fonctionnalité. Cette fonctionnalité n’est pas disponible dans C89.

Ce que le résumé vous a dit était vrai, d’un certain sharepoint vue. 🙂