It's very much a common practice to just exit a program without freeing it's memory.
Whether it's a best practice is certainly up for a discussion - quite so often a main() in one program evolves to a function call in another bigger program and when that happens you wish you got your memory (de)allocation straight. Then again for small programs it can be just a hazzle and extra unneeded work.