SDL_Quit shuts down all SDL subsystems and frees the resources allocated to them. This should always be called before you exit. For the sake of simplicity you can set SDL_Quit as your atexit call, like:
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO); atexit(SDL_Quit); . .
While using atexit maybe be fine for small programs, more advanced users should shut down SDL in their own cleanup code. Plus, using atexit in a library is a sure way to crash dynamically loaded code
SDL_Init(3), SDL_InitSubSystem(3), SDL_QuitSubSystem(3).