The only caution I would have with not freeing the
memory at exit time is that if you ever Refactor your program so that it,
for example, becomes a service that waits for input, does whatever your program does, then loops around to wait for another service call, then what you have coded can turn into a memory leak.