我在C99编程并在我的代码的一部分中使用可变长度数组.我知道在C89中不允许使用零长度数组,但我不确定C99和可变长度数组.
简而言之,以下是明确定义的行为吗?
int main()
{
int i = 0;
char array[i];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
AnT*_*AnT 14
不,C语言明确禁止零长度数组,即使它们是通过运行时大小值创建为VLA(如代码示例中所示).
6.7.5.2数组声明符
...
5如果size是一个不是整数常量表达式的表达式:如果它出现在函数原型范围的声明中,则将其视为*被替换为*; 否则,每次评估它时,其值应大于零.
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |