>
>
Давай поиграем в игру

Андрей Карпов
Статей: 643

Давай поиграем в игру

Авторы анализатора PVS-Studio предлагают вам проверить свою внимательность.

Анализаторы кода работают без устали и умеют находить множество ошибок, которые сложно заметить. Мы отобрали некоторые фрагменты кода, в которых мы выявили ошибки с помощью PVS-Studio. Все фрагменты взяты из известных Open-Source проектов.

Предлагаем вам посоревноваться с анализаторами в прозорливости и попробовать самостоятельно найти ошибки. Вам будет предложено 15 случайно выбранных заданий. За верный ответ насчитывается одно очко, если он дан в течение 1 минуты. Фрагменты кода короткие, и одна минута, это честное ограничение.

Рассмотрим пару примеров с ошибками и объясним, как указывать правильный ответ.

Пример первый. Перед вами следующий код:

Здесь ошибка выделена красным. При решении задач этого, конечно, не будет.

Программист случайно опечатался и вместо индекса 2 написал 3. При движении курсора мышки над кодом будут подсвечиваться различные слова и цифры. Вы должны навести курсор на число 3 и нажать левую кнопку мыши.

Это будет правильный ответ.

Второй пример. Не всегда можно однозначно указать, где ошибка:

Размер буфера нужно сравнить с числом 48. Случайно в код затесался лишний оператор sizeof(). В результате, размер буфера сравнивается с размером типа int.

На мой взгляд, ошибкой является оператор "sizeof", и именно на него надо указать мышкой. Однако, не имея перед глазами весь текст программы, можно рассудить так. Оператор 'sizeof' должен был посчитать размер какого-то буфера, но ему случайно подсунули макрос. Ошибкой является использование "SSL3_MASTER_SECRET_LENGTH".

Для таких случаев ответ будет засчитан, как верный, независимо от того, выберете вы "sizeof" или "SSL3_MASTER_SECRET_LENGTH".

А теперь желаем вам удачи. Начать игру.

P.S. Мы понимаем, что задания не идеальны, не всегда очевидно, куда нужно "ткнуть мышкой", и систему при желании можно обмануть. Просто учтите, что этот раздел сайта создан для развлечения, а не для полноценного тестирования кого-то.