c ++ main()脑筋急转弯

时间:2011-04-24 14:10:29

标签: c++

你能想到一个程序在没有达到你在main()开头设置的断点而崩溃的情况吗?

我的答案是在静态变量初始化期间,但不确定......

3 个答案:

答案 0 :(得分:3)

以上示例都是正确的,但根据我的经验,这通常是由于加载DLL时出现了一些问题......

答案 1 :(得分:2)

一个非常简单的例子

struct abc
{
   abc()
   {
       int* p = 0;
       *p = 42; // Drat!
   }
};

abc obj;
int main(){}

答案 2 :(得分:2)

我的回答100%保证会在main()之前崩溃。

#include <exception>

struct A
{
   A() 
   {
       std::terminate(); //from <exception>
       //you can also call std::abort() from <cstdlib>
   }
};
A a;

int main(){}

演示:http://www.ideone.com/JIhcz


另一种解决方案:

struct A
{
   A() 
   {
       throw "none";
   }
};
A a;

int main(){}

演示:http://www.ideone.com/daaMe