The freemenus() function frees all the memory allocated by the corresponding call to createmenus(). void FreeMenus( struct Menu *menu ); Its one argument is the menu or menuitem pointer that was returned by createmenus(). it is safe to call freemenus() with a null parameter, the function will then return immediately.