Is it safe to say that whenever you use malloc, you should use free?
I'd probably say that it's pretty much required if you don't want a memory-leaky(is that a word? lol) program. You should also check if malloc fails, if it does it can crash your program when you try to access non-allocated memory.