C++: Может ли программа возвращать в ОС не ноль, если в функции main явно стоит return 0? Может ли это быть связано с процессами, происходящими после выхода из функции (разрущение статических объектов, вызов callback'ов atexit'а, etc...) Пример кода .... .... int main() { .... .... try { mainObj.Run(); } catch(const MyAppTerminate& e) { // Это сообщение я в логе вижу ВСЕГДА!!! logg("Finished with message '%s'", e.what().c_str()); return 0; } } Но вот в систему возвращается что-то типа -1073741819. Не всегда конечно, но бывает. Если сразу выходить (без полезной работы), то всегда 0 возвращется. Скорее всего в программе у меня есть баг, но хотелось бы получить ответ на первоначальный вопрос.