bash.im ithappens.me zadolba.li
2097

Коротко и ясно

Дело было на первом курсе, когда вместо давно и хорошо знакомого Паскаля мне пришлось заняться С/С++. Язык этот показался мне довольно странным, однако, наскоро выучив синтаксис, я сумел-таки написать необходимые для зачёта программы. Нюанс был в том, что в одной из них, касавшейся обработки массива, я сумел посадить маленькую и весьма неочевидную багу: не выдавая никаких ошибок на этапе компиляции и не влияя на правильность вычислений, она зверским образом пожирала память. На школьном Паскале с его искусственно ограниченными размерами массивов такое построение программы прокатывало, как говорится, на «ура» — но всякому овощу своё место...

Преподаватель, согбенный старичок в очках с толстенными линзами, бегло просмотрел текст программы, покивал в знак согласия и запустил тест на рандомном массиве из десяти тысяч элементов. Время работы — полторы секунды. «Непорядок, должно быть полсекунды», — заявляет преподаватель. Запускаем на ста тысячах. Двадцать пять секунд. «Совсем нехорошо», — огорчается старичок и лезет в код. Скучающие одногруппники, дожидаясь своей очереди, прислушиваются к нашему диалогу. Кивая собственным мыслям, он доходит до процедурки, в которой и притаилась бага...

Увидев мой индийский код, дедок переменился в лице, вскочил из-за стола и на всю аудиторию возопил: «Это ещё что за х@#ня?!»

Гробовая тишина. Преподаватель, осознав, что он не один, тоном значительно пониже добавил: «Вы уж простите мою терминологию».

Больше такой ошибки я никогда не допускал.