ISO C90 zabrania tablic o zmiennej długości

Dynamicznie obliczam rozmiar tablicy. Coś jak:

<code>void foo(size_t limit)
{
  char buffer[limit * 14 + 1];
}
</code>

Ale tylko kompilator GCC mówi:

<code>error: ISO C90 forbids variable length array ‘buffer’
</code>

szukając SO znalazłemta odpowiedź:

C99 §6.7.5.2:

Jeśli rozmiar jest wyrażeniem, które nie jest wyrażeniem stałym liczby całkowitej ... ... za każdym razem, gdy jest ono oceniane, ma wartość większą niż zero.

Zrobiłem więc powtórną deklarację zmiennej typu ograniczenia rozmiaru do:

<code>void foo(const size_t limit)
</code>

Ale nadal ostrzega mnie. Czy to błąd GCC?

questionAnswers(6)

yourAnswerToTheQuestion