Ошибка сегментирования в списке
Решил попробовать создать список на 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);
}
Чем может быть вызвана ошибка?