我正在尝试使用基于 for 循环的新 C++11 范围。这是我的程序:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;
ofstream logger("log.txt");
void log(string message)
{
logger << message << std::endl;
logger.flush();
}
int main( int argc, char* args[] )
{
log("hello world");
cout << "hello world\n";
log("declare sort me");
int sortMe[10];
log("loop sortMe");
for(int i : sortMe) {
log("in loop " + i);
sortMe[i] = i + 1;
}
}
我正在使用 clang++ 进行编译。它与警告一起编译:
clang++ -o mycpp mycpp.cpp
mycpp.cpp:24:12: warning: range-based for loop is a C++11 extension
[-Wc++11-extensions]
for(int i : sortMe) {
^
1 warning generated.
当它运行时,我得到这个输出:
hello world
Segmentation fault (core dumped)
根据 log.txt 文件,程序进入 for 循环,但从未进入 for 循环。我错过了什么?