[C][GTK] Segmentation fault bei Treeview

Jon

Mitglied
Hallo C Programmierer,

Ich habe angefangen ein GTK-Programm in C zu schreiben, bisher habe ich dies nur in Python getan.

Als ich in meinen Programm ein Treeview integrieren wollte bekomme ich beim Ausführen ein Segmentation fault. (Speicherzugriffsfehler)
ich bin noch ziemlich neu in C, vielleicht habe ich irgendetwas verdreht mit den Zeigern. Ich würde mich über sehr Freuen wenn mir hier geholfen wird.

Code:
http://pastebin.com/hJXH0wy2
 
Hallo Jon,

hast du schonmal versucht zu debuggen?

Ich tippe darauf, dass irgendeine Variable oder Zeiger deines Programms noch initialisiert wurde, während versucht wird, darauf zuzugreifen.
 
Also hier ist der Auszug von gdb:


(gdb) bt
#0 0xb68be368 in g_type_check_is_value_type ()
from /usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0
#1 0xb6e33b00 in _gtk_tree_data_list_check_type (type=3645423872)
at /build/gtk+3.0-z1vuc0/gtk+3.0-3.4.2/./gtk/gtktreedatalist.c:91
#2 0xb6d4a0f4 in gtk_list_store_new (n_columns=64)
at /build/gtk+3.0-z1vuc0/gtk+3.0-3.4.2/./gtk/gtkliststore.c:445
#3 0x00008ec4 in store_create_and_fill_model () at articlelist.c:32
#4 treeview_create_view_and_model () at articlelist.c:68
#5 0x00008fd8 in init_mainscreen (window=0x4e000) at mainscreen.c:17
#6 0x00009178 in main (argc=0, argv=0x0) at main.c:35
 
Hallo Jon

Du verwendest gtk_list_store_new falsch. Das ist allerdings nicht wirklich dein Fehler, varags-Funktionen sind das schlimmste und unsauberste, was die C-Welt wohl jemals hervorgebracht hat... Die korrekte Verwendung ist:
gtk_list_store_new(numColumns, column1, column2, usw)

In deinem Falle also:
gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING)

Viele Grüsse
Cromon
 
Zurück