检查nullptr导致CTD

时间:2018-05-31 14:18:45

标签: c++ visual-studio crash nullptr

我有一个代码块,用于在函数运行后检查错误。但是这段代码本身就会引发问题。

ErrorType *error;
CreateObject(..., &error);  // Function argument is ErrorType**
if (error)  // nullptr if no error
{
        log << "Error details here." << std::endl;
        log.close();
        return false;  // Causes application to PROPERLY quit
}

调试器给了我一个&#34;内存访问冲突,第3行&#34;错误非常频繁,有一半的时间,没有使用调试器,这个代码导致CTD,而其他时候执行得很好(运行调试器时,我可以点击&#34;继续&#34;几次直到块执行正如预期的那样。)我是否需要指定if (error != nullptr)之类的内容才能使其正常工作?为什么此错误检查块会导致错误以及如何解决?

请注意,CreateObject()是一个外部API函数,不会抛出任何异常。

0 个答案:

没有答案