Segmentation fault on returning from main (very short and simple code, no arrays or pointers)
我一直想知道为什么以下琐碎的代码在从 main() 返回时会产生分段错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //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,那么一切正常。
这个特定组合似乎有问题...
这可能是编译器错误吗?我在 cygwin 中使用 gcc 版本 3.4.4。
提前感谢您的提示。
加博尔
这是一个错误。如果这是您的整个程序,那么它绝对没有问题。您在编译器或标准库中发现了一个错误。正如评论中向您推荐的那样,尝试使用 4.x 系列 gcc 编译器。 3.x 系列老如山河。