mallocで作ったメモリーは解放しなくてもプログラムが終われば解放されるけれど、プログラムが終わる前に開放したいときだけfreeを使うという理解であってますか?