I have to admit it sounds stupid to deduct points for that anyway, a test should measure your ability to reason, not your ability to remember trivial formalities.
Unfortunately C needs you to remember a lot of formalities and best practices to keep things from blowing up in your face. So I think it makes sense in this case.
I definitely agree that breaking best practices in a way that could lead to UB or hard-to-find bugs should give point deduction. The sole requirement shouldn’t be “write standard compliant code”.
However, a test does not simulate a real-world development environment, where you will have time to look through your code with fresh eyes the next day, and maybe even have someone review your code. The only thing a test reasonably simulates is your ability to solve the “thinking” part of the problem on your own. Thus, deducting points for trivial stuff that would 10/10 times be caught, either by the compiler, the developer or the reviewer, but isn’t “strictly correct” just seems pedantic to me.
To be fair, other than the example by OP I have a hard time coming up with things that wouldn’t be either caught by the compiler or are very bad practice (which should give point deduction).
I have to admit it sounds stupid to deduct points for that anyway, a test should measure your ability to reason, not your ability to remember trivial formalities.
Unfortunately C needs you to remember a lot of formalities and best practices to keep things from blowing up in your face. So I think it makes sense in this case.
I definitely agree that breaking best practices in a way that could lead to UB or hard-to-find bugs should give point deduction. The sole requirement shouldn’t be “write standard compliant code”.
However, a test does not simulate a real-world development environment, where you will have time to look through your code with fresh eyes the next day, and maybe even have someone review your code. The only thing a test reasonably simulates is your ability to solve the “thinking” part of the problem on your own. Thus, deducting points for trivial stuff that would 10/10 times be caught, either by the compiler, the developer or the reviewer, but isn’t “strictly correct” just seems pedantic to me.
To be fair, other than the example by OP I have a hard time coming up with things that wouldn’t be either caught by the compiler or are very bad practice (which should give point deduction).