https://invisible-island.net/ncurses/man/
menu_items(3x) Library calls menu_items(3x)
       set_menu_items,  menu_items,  item_count  -  make and break connections
       between items and menus
       #include <menu.h>
       int set_menu_items(MENU *menu, ITEM **items);
       ITEM **menu_items(const MENU *menu);
       int item_count(const MENU *menu);
       The function set_menu_items changes the item pointer array of the given
       menu.  The array must be terminated by a NULL.
       The function menu_items returns the item array of the given menu.
       The function item_count returns the count of items in menu.
       The function menu_items returns a pointer (which may be NULL).  It does
       not set errno.
       The function item_count returns ERR (the general  curses  error  return
       value) if its menu parameter is NULL .
       The  function  set_menu_items  returns  one  of  the following codes on
       error:
       E_OK The routine succeeded.
       E_BAD_ARGUMENT
            Routine detected an incorrect or out-of-range argument.
       E_NOT_CONNECTED
            No items are connected to the menu.
       E_POSTED
            The menu is already posted.
       E_SYSTEM_ERROR
            System error occurred (see errno(3)).
       These routines emulate the  System  V  menu  library.   They  were  not
       supported on Version 7 or BSD versions.
       The  SVr4  menu  library  documentation  specifies the item_count error
       value as -1 (which is the value of ERR).
       Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric S.
       Raymond.
       curses(3x), menu(3x)
ncurses 6.5                       2024-12-28                    menu_items(3x)