Ошибка сегментации при возврате из основного (очень короткий и простой код, без массивов или указателей)

Мне было интересно, почему следующее тривиальный код вызывает ошибку сегментации при возврате из main ():

//Produces "Error while dumping state (probably corrupted stack); Segmentation fault"

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

class Test
{
    vector<int> numbers;
};

int main()
{
    Test a;
    ifstream infile;

    cout << "Last statement..." << endl; // this gets executed
    return 0;
}

Интересно, что 1) если объявлена ​​только одна из двух переменных, я не получаю ошибку, 2) если я объявляю векторную переменную вместо объекта с членом вектора, все в порядке, 3) если я объявляю ofstream вместо ifstream, снова все работает нормально. Что-то не так с этой конкретной комбинацией ...

Может быть, это ошибка компилятора? Я использую gcc версии 3.4.4 с cygwin.

Заранее спасибо за советы.

Gábor

6
задан Gábor Kovács 15 January 2011 в 23:22
поделиться