【发布时间】:2013-09-14 14:17:28
【问题描述】:
我正在使用 C++ 进行小型编程练习。目标是用 2 的前 32 个指数初始化一个数组,然后输出它们。 使用普通的 for 循环没有问题,但我尝试使用 C++11 标准中引入的基于范围的 for 循环。 在编译期间,我收到警告“基于范围的 for 循环是 C++11 扩展 [-Wc++11-extensions]”。 运行程序我得到错误“分段错误:11”,没有任何进一步的输出。
我已经知道 elem 变量以某种方式被破坏了,但我不知道如何。 希望你能帮助一个n00b :)
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int LAENGE = 32;
long potenzen[LAENGE];
for(int elem : potenzen)
{
potenzen[elem] = pow(2.0, (double) (elem + 1));
}
for(int elem : potenzen)
{
cout << endl;
cout << potenzen[elem];
}
cout << endl;
return 0;
}
【问题讨论】:
-
从你使用foreach循环的方式来看,我猜你已经习惯了写javascript了:)
-
哈哈,我希望!我对编程完全陌生,只是想尝试新的 C++ 标准:)
标签: c++ c++11 segmentation-fault