我读到需要在编译时知道数组大小。但是,当我这样做时,它编译并运行得很好,没有任何错误……怎么会?
#include <iostream>
int main() {
int size;
std::cout << "Enter size: ";
std::cin >> size;
int a[size];
return 0;
}
我读到需要在编译时知道数组大小。但是,当我这样做时,它编译并运行得很好,没有任何错误……怎么会?
#include <iostream>
int main() {
int size;
std::cout << "Enter size: ";
std::cin >> size;
int a[size];
return 0;
}
您没有将其编译为严格符合 C++,而是使用从 C99 借来的扩展。
用于-Wall -Wextra -pedantic -std=c++14
使编译器抱怨。
请记住,符合标准的编译器只需要在遇到标准认为格式不正确的构造时输出一个诊断信息。
可变长度数组在 C++ 中是一个现实,显然在 C 中也是如此。