Maison > Article > développement back-end > Pouvez-vous déclarer un tableau avec une taille variable en C ?
Déclaration de taille de tableau variable en C
En C, la taille d'un tableau est généralement censée être une valeur entière constante. Cependant, la question se pose de savoir s'il est possible de déclarer un tableau avec une variable non constante comme taille.
Comme le souligne Bjarne Stroustrup dans The C Programming Language, "le tableau lié doit être une expression constante". En conséquence, le code ci-dessous est considéré comme incorrect :
<code class="cpp">int ArraySize = 5; int MyArray[ArraySize]; // incorrect</code>
Cependant, étonnamment, sur certains systèmes comme GCC v4.4.0, le code se compile avec succès :
<code class="cpp">void f(int i) { int v2[i]; } int main() { int i = 3; int v1[i]; f(5); }</code>
Ce comportement inattendu est dû à une extension GCC de la norme. Par défaut, GCC autorise l'utilisation d'une variable non constante comme taille de tableau. Cependant, il se peut que cette fonctionnalité ne soit pas prise en charge par tous les compilateurs ou plates-formes.
Si la portabilité est une exigence, il est fortement recommandé d'utiliser l'option -pedantic avec GCC pour activer les avertissements pour cette extension ou d'utiliser -std=c 98 pour générer une erreur. En adhérant à la norme, le code sera plus fiable et compatible multiplateforme.
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!