配列のサイズを動的に計算しています。何かのようなもの:
void foo(size_t limit)
{
char buffer[limit * 14 + 1];
}
しかし、GCCコンパイラだけが言う:
error: ISO C90 forbids variable length array ‘buffer’
SOで検索すると、この答えが見つかりました:
C99 §6.7.5.2:
サイズが整数定数式ではない式の場合... ...評価されるたびに、ゼロより大きい値を持つ必要があります。
そこで、サイズ制限型変数を次のように再宣言しました。
void foo(const size_t limit)
しかし、それは私に警告を与え続けています。これは GCC のバグですか?