当前位置:C++技术网 > 资讯 > 用vs2010运行时弹出这个窗口是怎么回事?

用vs2010运行时弹出这个窗口是怎么回事?

更新时间:2017-02-27 22:50:13浏览次数:1+次


C++技术网会员解答:

    您好,感谢对C++技术网的支持和信任。

    Assertion是断言的意思。这里提示的Debug Assertion Failed意思是调试断言失败。

    断言意思是断定这个表达式是这样,如果不是这样,就报错。你这里就报错了。当然是在调试时报错,用于提醒开发者提早注意到潜在的问题。

    断言是用一个表达式来表示,如果表达式为假,那么就报错。断言就是断定一定是对的。如果不对,那就不要继续往后走了。比如下面的代码:

int i=0;
ASSERT(i!=0);
int j=100/i;
     第三句是进行除法运算。我们知道,除数是不能为0的。所以我们在前面加入断言,i一定不等于0.如果等于,会出错的。而我们看到,这里i值为0,就会出现断言失败的提示。

    断言是一种开发预防隐患的防御Bug的机制。发生断言就表明发生了不该发生的事情,不能再继续往后走。

    如果这样的错误不解决,在Release版程序时就可能出现“程序已经停止运行”的运行提示。

    所以,你要检查的是,为什么(unsigned)(c+1)<=256不是真的,也就是说,c+1大于256了。你要检查为什么会大于这个值,然后解决后,就不会再提示这个了。

    不要随便删除断言,因为人家设置好就是防止你出错,也表示这里比较容易出错。

    差不多就是这样了。出现这个提示时,点击重试就可以进入断言的位置,并处于调试状态,可以查看各个变量的值。