Ошибка сегментирования в списке

Решил попробовать создать список на C и Motif. Но тут же столкнулся с ошибкой «Ошибка сегментирования».

Вот такой у меня код:

#include <Xm/List.h>

char *months[] = {
"item01", "item02", "item03", "item04", "item05", "item06", "item07",
"item08", "item09", "item10"
};

int

main(argc, argv)
int argc;
char *argv[];
{
    Widget           toplevel, list_w;
    XtAppContext     app;
    Arg              args[6];
    int              i, n = XtNumber (months);
    XmStringTable    str_list;

    XtSetLanguageProc (NULL, NULL, NULL);

    toplevel = XtVaAppInitialize (&app, "Demos", NULL, 0,
        &argc, argv, NULL, NULL);

    str_list = (XmStringTable) XtMalloc (n * sizeof (XmString));

    for (i = 0; i < n; i++)
        str_list[i] = XmStringCreateLocalized (months[i]);

    XtSetArg (args[n], XmNvisibleItemCount, n); n++;
    XtSetArg (args[n], XmNitemCount, n); n++;
    XtSetArg (args[n], XmNitems, str_list); n++;
    XtSetArg (args[n], XmNselectionPolicy, XmEXTENDED_SELECT); n++;
    XtSetArg (args[n], XmNscrollBarDisplayPolicy, XmSTATIC); n++;
    XtSetArg (args[n], XmNlistSizePolicy, XmCONSTANT); n++;

    list_w = XmCreateScrolledList (toplevel, "scrollable_list", args, i);
    XtManageChild (list_w);

    for (i = 0; i < n; i++)
        XmStringFree (str_list[i]);

    XtFree(str_list);

    XtRealizeWidget (toplevel);
    XtAppMainLoop (app);
}

Чем может быть вызвана ошибка?


Ответы (0 шт):