Pour obtenir une clé
d'essai remplissez le formulaire ci-dessous
Demandez des tariffs
Nouvelle licence
Renouvellement de licence
--Sélectionnez la devise--
USD
EUR
RUB
* En cliquant sur ce bouton, vous acceptez notre politique de confidentialité

Free PVS-Studio license for Microsoft MVP specialists
To get the licence for your open-source project, please fill out this form
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

I am interested to try it on the platforms:
** En cliquant sur ce bouton, vous acceptez notre politique de confidentialité.

Votre message a été envoyé.

Nous vous répondrons à


Si vous n'avez toujours pas reçu de réponse, vérifiez votre dossier
Spam/Junk et cliquez sur le bouton "Not Spam".
De cette façon, vous ne manquerez la réponse de notre équipe.

>
>
>
Challenge: can you spot an error in C++…

Challenge: can you spot an error in C++ code?

29 Jui 2022
Author:

PVS-Studio developers made an entertaining quiz for you. Try to quickly find a bug in a code fragment. If you spot an error - click on it.

0960_Game_Cpp/image1.webp

Code analyzers restlessly search for errors. They can find even those that are hard to notice. We chose several code fragments in which PVS-Studio found errors. All fragments are from open-source projects.

We encourage you to compete with our analyzer and find these errors yourself! You'll see ten code fragments. If you manage to find an error in under 1 minute, you score one point.

The 1-minute limit is made on purpose. Otherwise you'll definitely find all errors — code fragments are short. Anyway, treat this quiz as a game, and not as a real test of your programming skills :)

When you find an error, highlight it with a mouse, and click "Answer". Sometimes there are several places in code with an error. You can highlight any of them and the answer will be correct. I'll explain it with an example.

case FuriHalSubGhzPreset2FSKDev476Async:
  preset_name = "FuriHalSubGhzPreset2FSKDev476Async";
  break;
  FURI_LOG_E(SUBGHZ_PARSER_TAG, "Unknown preset");
default:

This code fragment is taken from the FlipperZero project. The PVS-Studio analyzer warns us that part of the code is never executed: V779 [CWE-561, CERT-MSC12-C] Unreachable code detected. It is possible that an error is present. subghz_i.c 44

The developer was probably in a rush and used a logging macro after the break operator. Or this is a result of unsuccessful refactoring. Anyway, the error here is obvious. But what should we highlight?

On the one hand, we can choose the break operator as an answer. It's before the FURI_LOG_E and breaks the switch operator execution. So, the problem's here.

On the other hand, we can choose the logging macro. This is the unreachable code.

Which is the correct answer then? This is easy. In this case, whatever we highlight — the break operator or the FURI_LOG_E macro — will be the correct answer.

Now I think the rules are clear. Good luck: play the quiz.

Don't forget to share this quiz with your teammates! Have fun, and we wish you bugless code!

Comments (0)

Next comments
Unicorn with delicious cookie
Nous utilisons des cookies pour améliorer votre expérience de navigation. En savoir plus
Accepter