# ControllerImage_Quit Deinitialize the ControllerImage library. ## Header File Defined in [](https://github.com/icculus/ControllerImage/blob/main/src/controllerimage.h) ## Syntax ```c void ControllerImage_Quit(void); ``` ## Remarks This must be called when done with the library, probably at the end of your program. It is safe to call this multiple times; the library will only deinitialize once, when this function is called the same number of times as [ControllerImage_Init](ControllerImage_Init)() was successfully called. Once you have successfully deinitialized the library, it is safe to call [ControllerImage_Init](ControllerImage_Init)() to reinitialize it for further use. Any data added to the library through [ControllerImage_AddData](ControllerImage_AddData)() and related functions will be deallocated. This function does not automatically destroy any created [ControllerImage_Device](ControllerImage_Device) objects that have been created. Please destroy them before deinitializing the library. SDL_Surface objects generated by the library are _also_ not destroyed here. Once the library deinitializes, constant strings returned by various functions, like [ControllerImage_GetDeviceType](ControllerImage_GetDeviceType)(), [ControllerImage_GetSVGForButton](ControllerImage_GetSVGForButton)(), and [ControllerImage_GetSVGForAxis](ControllerImage_GetSVGForAxis)(), will be deallocated, and their pointers should not be referenced again. ## Thread Safety This function is not thread safe. ## Version This function is available since ControllerImage 1.0.0. ## See Also - [ControllerImage_Init](ControllerImage_Init) ---- [CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryControllerImage](CategoryControllerImage)