在本地范围内的VLA可以正常工作,但在全球范围内则不能

时间:2019-01-12 12:01:09

标签: c++ g++

在本地空间中声明VLA时,它们可以正常工作(除非使用-pedantic):

 int main()
 {
     int i=9;
     char n[i];   


     return 0;
 }

但是,如果在全局级别执行相同操作,则会抛出错误

int i=9;
char n[i];    //error: array bound is not an integer constant before ‘]’ token

int main()
{

     return 0;
}
  • 是因为内容 stack中存在局部空间,static存储器中的内容需要大小 预先?

编译器为 g ++(GCC)8.2.0

0 个答案:

没有答案