我有一个代码块,用于在函数运行后检查错误。但是这段代码本身就会引发问题。
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函数,不会抛出任何异常。