C90cコードをgccでコンパイルしています。ISO C90 forbids variable-size array
次のような宣言をしているときに警告が表示されます
int symbols[nc];
ここで、ncは整数であり、その値は入力ファイルから読み取られます。入力ファイルの値が変化しているため、一定の値を維持できません。どうすればそれを取り除くことができますか?この警告を解決する必要があるのでしょうか、それとも単に無視することができるのでしょうか。
前もって感謝します。
C90cコードをgccでコンパイルしています。ISO C90 forbids variable-size array
次のような宣言をしているときに警告が表示されます
int symbols[nc];
ここで、ncは整数であり、その値は入力ファイルから読み取られます。入力ファイルの値が変化しているため、一定の値を維持できません。どうすればそれを取り除くことができますか?この警告を解決する必要があるのでしょうか、それとも単に無視することができるのでしょうか。
前もって感謝します。
C90は可変長配列をサポートしていないため、この警告が表示されます。
-std=c99またはstd=gnu99コマンドラインフラグを使用してgccをC99モード(vlaをサポート)に切り替えるか、コードを書き直してメモリを動的に割り当てるか、固定サイズの配列を使用する必要があります。
この場合、警告はC90に準拠していないことを示していますが、それ以外の場合は安全です。ただし、警告を無視することは実際にはオプションではありません。