gpt4 book ai didi

c - 是否允许/明确定义零长度可变长度数组?

转载 作者:太空狗 更新时间:2023-10-29 14:50:42 27 4
gpt4 key购买 nike

我在 C99 中编程,并在我的一部分代码中使用可变长度数组。我知道在 C89 中不允许零长度数组,但我不确定 C99 和可变长度数组。

简而言之,以下是定义明确的行为吗?

int main()
{
int i = 0;
char array[i];
return 0;
}

最佳答案

不,零长度数组被 C 语言明确禁止,即使它们是通过运行时大小值创建为 VLA(如您的代码示例中所示)。

6.7.5.2 Array declarators

...

5 If the size is an expression that is not an integer constantexpression: if it occurs in a declaration at function prototype scope,it is treated as if it were replaced by *; otherwise, each time it isevaluated it shall have a value greater than zero.

关于c - 是否允许/明确定义零长度可变长度数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com