【发布时间】:2013-07-09 22:32:19
【问题描述】:
我正在使用 C99 进行编程,并在我的一部分代码中使用可变长度数组。我知道在 C89 中不允许使用零长度数组,但我不确定 C99 和可变长度数组。
简而言之,以下行为是否明确?
int main()
{
int i = 0;
char array[i];
return 0;
}
【问题讨论】:
-
这甚至不应该编译,因为
i不是编译时常量。 -
尝试编译它; gcc 会出来,打你,射你,偷你的车。
-
@Jashaszun:在 C 中,本地数组大小不需要是常数。
-
@TheOtherGuy:C99 中允许使用可变长度数组...