It's essential to follow pjmlp's advice, since C does otherwise not give a lot of feedback about one's mistakes: learning from one's mistakes might take a long time since a quite broken program (think overwriting past memory strictly allocated for one entity) might still lead to a working program.
Use your compiler, use it well with all its warnings. Run your programs under valgrind or some such.
Use your compiler, use it well with all its warnings. Run your programs under valgrind or some such.