Проверка на nullptr Причины CTD - PullRequest
0 голосов
/ 31 мая 2018

У меня есть блок кода, который я установил для проверки ошибок после запуска функции.Но этот блок кода сам вызывает проблемы.

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
}

Отладчик выдает мне сообщение об ошибке «нарушение доступа к памяти, строка 3» довольно часто, и половину времени, без использования отладчика, этот код вызывает CTDв то время как в других случаях он выполняется просто отлично (при запуске отладчика я могу просто нажать «Продолжить» несколько раз, пока блок не будет выполнен как задумано.) Нужно ли указывать что-то вроде if (error != nullptr), чтобы заставить его работать должным образом?Почему этот блок проверки ошибок вызывает ошибки и как их исправить?

Обратите внимание, что CreateObject() - это функция внешнего API, которая не выдает никаких исключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...