私は C++ で小さなプログラミング演習に取り組んでいます。目標は、2 の最初の 32 個のべき乗で配列を開始し、後でそれらを出力することです。通常の for ループを使用しても問題はありませんが、C++11 標準で導入された範囲ベースの for ループを使用しようとしました。コンパイル中に、「範囲ベースの for ループは C++11 拡張 [-Wc++11-extensions] です」という警告が表示されます。プログラムを実行すると、「Segmentation fault: 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;
}