首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++ main()脑筋急转弯

c++ main()脑筋急转弯
EN

Stack Overflow用户
提问于 2011-04-24 22:10:29
回答 3查看 807关注 0票数 3

你能想到这样一种情况吗?如果你的程序没有到达你在main()开始时设置的断点,你的程序就会崩溃?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-24 22:13:56

一个非常简单的例子

代码语言:javascript
复制
struct abc
{
   abc()
   {
       int* p = 0;
       *p = 42; // Drat!
   }
};

abc obj;
int main(){}
票数 2
EN

Stack Overflow用户

发布于 2011-04-24 22:25:49

THe上面的例子是真的,但根据我的经验,这通常是由于加载DLL时出现了一些问题……

票数 3
EN

Stack Overflow用户

发布于 2011-04-24 22:16:10

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

代码语言:javascript
复制
#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

另一种解决方案:

代码语言:javascript
复制
struct A
{
   A() 
   {
       throw "none";
   }
};
A a;

int main(){}

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5770984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档