http://habrahabr.ru/company/pvs-studio/blog/237219/
Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность.
Анализаторы кода работают без устали и умеют находить множество ошибок, которые сложно заметить. Мы отобрали некоторые фрагменты кода, в которых мы выявили ошибки с помощью PVS-Studio. Все фрагменты взяты из известных Open-Source проектов.
Предлагаем вам посоревноваться с анализаторами в прозорливости и попробовать самостоятельно найти ошибки. Вам будет предложено 15 случайно выбранных заданий. За верный ответ насчитывается одно очко, если он дан в течение 1 минуты. Фрагменты кода короткие, и 1 минута это честное ограничение.
Рассмотрим пару примеров с ошибками и объясним, как указывать правильный ответ.
Пример первый. Перед вами следующий код:
Здесь ошибка выделена красным. При решении задач этого, конечно, не будет.
Программист случайно опечатался и вместо индекса 2 написал 3. При движении курсора мышки над кодом будут подсвечиваться различные слова и цифры. Вы должны навести курсор на число 3 и нажать левую кнопку мыши.
Это будет правильный ответ.
Второй пример. Не всегда можно однозначно указать, где ошибка:
Размер буфера нужно сравнить с числом 48. Случайно в код затесался лишний оператор sizeof(). В результате, размер буфера сравнивается с размером типа int.
На мой взгляд, ошибкой является оператор «sizeof», и именно на него надо указать мышкой. Однако, не имея перед глазами весь текст программы, можно рассудить так. Оператор 'sizeof' должен был посчитать размер какого-то буфера, но ему случайно подсунули макрос. Ошибкой является использование «SSL3_MASTER_SECRET_LENGTH».
Для таких случаев ответ будет засчитан, как верный, независимо от того, выберете вы «sizeof» или «SSL3_MASTER_SECRET_LENGTH».
А теперь желаем вам удачи.
Начать игру.
P.S. Мы понимаем, что задания не идеальны, не всегда очевидно, куда нужно «ткнуть мышкой», и систему при желании можно обмануть. Просто учтите, что этот раздел сайта создан для развлечения, а не для полноценного тестирования кого-то.