Initialisation d’un tableau de longueur variable (VLA) de taille dynamic sur 0

La ligne de code suivante, qui crée un tableau de longueur variable sur la stack:

char name[length] = {'\0'}; 

Génère les diagnostics du compilateur suivants:

 error: variable-sized object may not be initialized warning: excess elements in array initializer warning: (near initialization for 'name') 

Quelles sont les options disponibles pour initialiser les VLA? Suis-je obligé d’utiliser une ligne telle que:

 memset(name, 0, sizeof(name)); 

Au lieu?

    Oui, vous devez écrire du code pour l’initialisation des VLA (ce qui pourrait être un memset() comme vous l’avez décrit, ou tout autre moyen qui vous tient à cœur).

    C’est simplement une contrainte dans la norme C (§ 6.7.8):

    1. Le type de l’entité à initialiser doit être un tableau de taille inconnue ou un type d’object qui n’est pas un type de tableau de longueur variable.