У меня странная проблема в моем коде. У меня есть много утверждений, разбросанных по коду, и все они работают нормально. Всякий раз, когда утверждение терпело неудачу, я получал сообщение с номером строки, где произошел сбой. Сегодня я написал еще одно утверждение в функции, которая загружает файл. Просто хотел убедиться, что фай существует. Очень простое утверждение. Вот соответствующий код:
//Check that the file exists and can be opened
FILE* f = fopen(filename, "rb");
#ifdef ASSERTIONS_ON
assert(f!=NULL);//@problem For some reason while all other asserts work, this one just crashes the program without reporting line
#else
if(f == NULL)
return MODEL_LOAD_FILENOTFOUND;
#endif
fclose(f);
Я знаю, что это не очень помогает, но просто хотел продемонстрировать, в чем моя проблема. Моя ОС — Windows 7. Компилятор — GCC. Сообщение об ошибке, которое я получаю от Windows, является обычной ошибкой времени выполнения, но без сообщения о строке:
«Приложение запросило среду выполнения необычным образом завершить его. Пожалуйста, свяжитесь со службой поддержки приложения для получения дополнительной информации»
В чем может быть проблема? Что может привести к тому, что ошибка утверждения просто запросит завершение без сообщения строки, в которой это происходит, в то время как в любом другом случае в том же коде он работает так, как предполагалось? Спасибо заранее за любую помощь!