在21st Century C Tips From the New School书中。在第171页上,
现在可悲的是:假设您有一个可变长度数组(即,其长度由运行时变量设置的数组)。将其归零的唯一方法是通过
memset
:int main(){ int length=20; int ll[length]; memset(ll, 0, 20*sizeof(int)); }
就这样。 1。
该部分的脚注为
- 您可以为此归咎于ISO C标准§6.7.8(3),因为它坚持认为不能初始化可变长度数组。我说编译器应该可以解决这个问题。
尽管在seminal answers on this matter on StackOverflow中似乎没有任何暗示,但我没有看到任何提及,
int main(){
int length=20;
int ll[length] = {0};
}
这是对ISO C 2011标准的正确阅读吗?