Maison  >  Article  >  développement back-end  >  Pouvez-vous déclarer un tableau avec une taille variable en C ?

Pouvez-vous déclarer un tableau avec une taille variable en C ?

DDD
DDDoriginal
2024-11-01 22:11:29388parcourir

Can You Declare an Array with a Variable Size in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn