在我的大学脚本中写道,我们不允许在运行时创建一个只在运行时才知道大小的本地数组。为什么我能够创建仅在运行时已知的大小数组?
float x [size] [2];
这不起作用,因为声明的数组不能有运行时大小。尝试载体:
来源:C++ expected constant expression
但是这个代码在苹果LLVM 8.0.0
#include <iostream>
int main(){
int i = 5;
int x;
std::cin >> x;
int array[x];
for(int i = 0; i<x; ++i){
std::cout << array[i] << "\n";
}
}
编辑编译:与正常工作。按预期打印垃圾。
提醒:这个程序并不意味着任何意义。
这是一个非标准的编译器扩展。如果你用'-pedantic-errors'编译它应该拒绝它。 – Galik