Maison > développement back-end > C++ > le corps du texte

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

DDD
Libérer: 2024-11-01 22:11:29
original
465 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal