I don't think you should down vote the answer. You could post your own with an alternative solution and explanation why something else is better to do in the case.
But...
Consider the scenario when someone requirement is to use a 2D array instead of vectors - could be homework, work-related, learning from book where the OP has not reached the vectors sections or something similar.
If the question is specifically about the 2D array just make sure you are not radically changing the meaning of the question giving an answer.
Your statement
but it doesn't answer the OP question since he'll not learn from his
mistakes
is what we call Primarily opinion based. I don't think you should put yourself in a position where you're judging whether the OP is going to learn or not from an answer provided(not by you). You have the right to downvote any question or/and any answer.
The idea of asking a specific-programmatic question is to get a specific answer to the question asked. If the OP asked for a 2D array solution then that's what he was interested in.
I suggest to take advantage of the comments section below the question. If something is unclear or if you would like to propose another solution then simply ask the OP:
have you considered using vectors to solve your problem?
vectors
or whatever in this stage..vector
is.. :)Vector
which might help him, or else, just move on. If you really feel that this might help the OP very much, I strongly urge you to go ahead and post it as answer. It might not help this OP now, but it might be very useful for some other user in the future.