Tableaux de longueur nulle en C/C : une erreur déroutante
Bien que définir un tableau de taille zéro puisse paraître anodin, cela peut conduire à des conséquences inattendues en C/C. Selon la norme ISO C (9899:2011 6.7.6.2), un tableau doit avoir une taille supérieure à zéro.
Cette restriction s'applique à la fois aux tableaux simples et aux tableaux de longueur variable (VLA). Dans le cas des VLA, l'expression déterminant la taille du tableau doit avoir une valeur supérieure ou égale à un. Si cette expression est évaluée à zéro ou à un nombre négatif, le comportement n'est pas défini.
Malgré cette exigence claire, certains compilateurs, tels que GCC, ne se plaignent pas lorsque vous définissez un tableau de longueur nulle. Cela peut être dû à la prise en charge du code existant qui n'a pas été mis à jour pour utiliser la nouvelle syntaxe de tableau avec des crochets ([]). Cependant, il est essentiel de comprendre que définir un tableau de longueur nulle est une erreur.
Définir un tel tableau n'aboutit pas à une structure de données valide. Tenter d'utiliser le tableau de quelque manière que ce soit entraînera un comportement indéfini et des plantages potentiels. Il est crucial de vous assurer que votre code définit toujours des tableaux avec des tailles valides et positives.
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!