malloc前にfreeしたら動作がおかしくなりませんか?