Ошибка сегментации при упаковке строки меню - PullRequest
0 голосов
/ 26 января 2019

У меня есть программа, которая таинственным образом вылетает при вызове gtk_box_pack_start () для упаковки строки меню. Я следовал за учебником здесь http://zetcode.com/gui/gtk2/menusandtoolbars/.

Github: https://github.com/Taisho/c-gstreamer-audio-player

файл: client / client.c

Вот только соответствующий код:

void init_menus(vbox) {
    GtkWidget *daemon_menu = gtk_menu_new ();    /* Don't need to show menus */
    GtkWidget *connect_item = gtk_menu_item_new_with_label ("Connect");
    GtkWidget *preferences_item = gtk_menu_item_new_with_label ("Preferences");
    gtk_menu_append (GTK_MENU (daemon_menu), connect_item);
    gtk_menu_append (GTK_MENU (daemon_menu), preferences_item);
    gtk_widget_show (connect_item);
    gtk_widget_show (preferences_item);

    GtkWidget *menu_bar = gtk_menu_bar_new ();

    gtk_box_pack_start(GTK_BOX(vbox), menu_bar, FALSE,FALSE,0); //<-- segmentation fault here

    gtk_widget_show (menu_bar);

    GtkWidget *file_item = gtk_menu_item_new_with_label ("File");
    gtk_widget_show (file_item);
}

init_menus () вызывается из main () с передачей обычного vbox

int main (int argc, char **argv) {
   ...
   gtk_init(&argc, &argv);
   ...
   vbox = gtk_vbox_new (FALSE, 0);
   ...
   init_menus(vbox);
}
...