0

在新学校的 21 世纪 C 提示一书中。在第 171 页上,它说,

现在是可悲的部分:假设您有一个可变长度数组(即,其长度由运行时变量设置)。将其归零的唯一方法是通过memset

int main(){
  int length=20;
  int ll[length];
  memset(ll, 0, 20*sizeof(int));
}

就这样。1.

该部分的脚注如下:

  1. 您可以为此责备 ISO C 标准 §6.7.8(3),因为它坚持不能初始化可变长度数组。我说编译器应该能够解决它。

尽管在StackOverflow 上有关此问题的开创性答案中,我没有在任何地方看到这一点,这似乎表明这会起作用,

int main(){
  int length=20;
  int ll[length] = {0};
}

这是对 ISO C 2011 标准的正确解读吗?

4

0 回答 0