Impact de la définition d'un tableau de taille 0 en C/C
Lors de la définition d'un tableau en C/C, la taille du tableau doit être précisé. La curiosité surgit souvent quant au comportement de la définition d'un tableau d'une taille nulle, comme c'est le cas avec int array[0].
Dans l'exemple de code fourni, GCC ne génère aucune erreur ni aucun avertissement lors de la compilation. Cela soulève la question de savoir si les tableaux de longueur nulle sont optimisés lors de la compilation.
Selon la norme ISO 9899:2011 (C99), un tableau ne peut pas avoir une taille nulle. La norme indique explicitement que si la taille d'un tableau est une expression constante, elle doit avoir une valeur supérieure à zéro. Cette règle s'applique à la fois aux tableaux simples et aux tableaux de longueur variable (VLA).
Malgré la norme du langage, certains compilateurs peuvent autoriser la définition de tableaux de taille nulle pour des raisons de compatibilité héritée ou à des fins spécifiques. Cependant, il n'est pas garanti que le comportement des tableaux de taille nulle sera cohérent entre les différents compilateurs, et tenter d'accéder à un tableau de taille nulle entraînera probablement un comportement indéfini.
En tant que tel, il est recommandé pour éviter de définir des tableaux de taille nulle et pour gérer les cas où la taille du tableau peut être nulle par d'autres moyens, comme l'allocation conditionnelle de mémoire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!