Пишу простенький файловый менеджер на ncurses.Решил выводить список файлов в виде меню с помощью menu.h.Столкнулся с проблемой,если количество элементов большое(например,100),то ничего не выводится.Вот код
void Window::DrawMWindow(vector<FData> &List, WINDOW *win) {
int nCount = List.size();
char **choices = new char *[nCount + 1];
for (int i = 0; i < nCount; i++)
{
choices[i] = new char [strlen(List[i].name)];
strcpy(choices[i], List[i].name);
}
choices[nCount] = (char *) NULL;
ITEM **mItems;
int c;
MENU *Menu;
int nChois, i;
mItems = (ITEM **) calloc(nCount, sizeof (ITEM *));
for (i = 0; i < nCount; i++)
mItems[i] = new_item(choices[i], NULL);
Menu = new_menu((ITEM**) mItems);
set_menu_fore(Menu, COLOR_PAIR(1) | A_REVERSE);
set_menu_back(Menu, COLOR_PAIR(1));
set_menu_grey(Menu, COLOR_PAIR(1));
set_menu_win(Menu, win);
set_menu_sub(Menu, derwin(win,24,50,1,1));
box(win, 0, 0);
post_menu(Menu);
while (true) {
c = wgetch(win);
switch (c) {
case KEY_DOWN:
menu_driver(Menu, REQ_DOWN_ITEM);
break;
case KEY_UP:
menu_driver(Menu, REQ_UP_ITEM);
break;
case 10:
unpost_menu(Menu);
exit;
}
wrefresh(win);
}