我正在动态计算数组的大小。就像是:
void foo(size_t limit)
{
char buffer[limit * 14 + 1];
}
但只是 GCC 编译器说:
error: ISO C90 forbids variable length array ‘buffer’
搜索所以我找到了这个答案:
C99 §6.7.5.2:
如果大小是一个不是整数常量表达式的表达式... ...每次对其进行评估时,它的值都应大于零。
所以,我重新声明了大小限制类型变量:
void foo(const size_t limit)
但它继续给我警告。这是 GCC 错误吗?