我正在针对某些10001值测试我的代码,但它没有打印任何输出值。
我发现即使我只是使用cin
进行输入并且当值很大(数千)时使用cout
进行打印,它甚至都没有打印出来。
当我在www.ideone.com上运行同样的东西时,它可以工作,但在我自己的机器上它不会打印任何东西。
该计划是:
int main() {
int N, x;
cin >> N;
int ar[N];
for (int i = 0; i < N; ++i) {
cin >> x;
ar[i] = x;
}
for (int i = 0; i < N; ++i) {
cout << ar[i] << " ";
}
cout << endl;
}
可以使用副本在http://ideone.com/S3EneQ下载示例输入。
我正在使用Ubuntu 14.04
和g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
(2013)。
答案 0 :(得分:1)
您正在使用int ar[N]
在堆栈上创建一个大型数组,这是一个坏主意。
将int ar[N]
替换为std::vector<int> ar(N)
。
顺便说一下,动态大小的数组被支持为非可移植扩展,因为它们不属于标准C ++语言。