QUOTE (Golikov A. @ Aug 13 2013, 16:25)

всегда считал что все переменные до инициализации содержат мусор, не знал про статик и глобальные. А кто их нулит?
Обычно это специальный так называемый стартап код, который выполняется перед запуском main(). В стандарте сказано просто что-то вроде "переменные обнуляются". Чем и как - вроде бы не оговаривается.
QUOTE (Golikov A. @ Aug 13 2013, 16:25)

Что же вы теперь программу будете всю отладчиком шерстить? Лучше уже писать безопасный код ИМХО.
Если бы все были этакими сферическими программистами в вакууме, способными писать код сразу без ошибок... Часто проход по шагам небольшого кусочка кода, исполняющегося не так, как ожидал автор, позволяет за один проход найти ошибку. Все остальные методы отладки, включая медитацию над исходником, требуют гораздо больше времени.