【发布时间】:2011-02-06 07:34:58
【问题描述】:
我对 C++ 比较陌生,从一开始我就深知你不能做类似的事情
int x;
cin >> x;
int array[x];
相反,您必须使用动态内存。然而,我最近发现上面的 将 编译(虽然我得到一个 -pedantic 警告说它被 ISO C++ 禁止)。我知道如果标准不允许这样做显然是个坏主意,但我以前什至不知道这是可能的。
我的问题是,如果标准不允许,为什么 g++ 允许不动态分配的可变长度数组?另外,如果编译器可以做到这一点,为什么不是它在标准中?
【问题讨论】:
-
关于你的最后一个问题,为什么 C++ 不支持它们,你也可以参考这个问题:stackoverflow.com/questions/1887097/variable-length-arrays-in-c 和接受的答案中链接的 comp.lang.c++ 线程。
标签: c++ standards-compliance dynamic-arrays