2011-01-23 10 views
3

Je compile mon code C90 dans gcc. Je reçois l'avertissement ISO C90 forbids variable-size array tout en faisant la déclaration commeObtention de l'avertissement "ISO C90 interdit tableau de taille variable" dans le compilateur gcc lors de la compilation du code C90

int symbols[nc];

Où nc est un entier dont la valeur est lue à partir du fichier d'entrée. Les valeurs sur les fichiers d'entrée sont variées, donc je ne peux pas garder une valeur constante. Comment puis-je m'en débarrasser? Est-il vraiment nécessaire de résoudre cet avertissement ou nous pouvons simplement l'ignorer?

Merci d'avance.

Répondre

5

Vous obtenez cet avertissement car C90 ne prend pas en charge variable length arrays. Vous devrez soit passer de gcc au mode C99 (qui supporte vla), en utilisant l'option de ligne de commande -std = c99 ou std = gnu99, soit réécrire votre code pour allouer dynamiquement de la mémoire ou utiliser une taille fixe tableau. L'avertissement vous indique simplement que vous n'êtes pas conforme à la norme C90 dans ce cas, mais que ce n'est pas dangereux. Ignorer un avertissement ne devrait vraiment pas être une option cependant.

+2

Si gcc est le seul compilateur qui verra jamais ce code, ajouter '-Wno-vla' à l'invocation est plus sûr que de prendre l'habitude d'ignorer les avertissements. –

+0

Merci Christopher. Parmi tous les résultats google pour ce sujet, vous êtes le seul qui parle de cette option. – shuhalo

Questions connexes