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