У меня есть этот код. указатель поворачивается на 0x0 непосредственно перед его использованием. раньше, у него был правильный адрес.Указатель мгновенно 0x0
TreeViewColumn *col;
col = preview->get_column(pcFolder); /* col = 0x7fff5fc404a0 */
col->set_resizable(true); /* col = 0x0 */
Я использую Gtkmm 2.4, но возвращает ожидаемое значение, оно просто превращается в 0x0. что не так?
GDB доказательство:
151 col = preview->get_column(pcFolder); /* col = 0x7fff5fc404a0 */
(gdb) print col
$1 = ('Gtk::TreeViewColumn' *) 0x7fff5fc404a0
(gdb) print *col
warning: can't find linker symbol for virtual table for `Gtk::TreeViewColumn' value
$2 = {
<Gtk::Object> = {
<Glib::Object> = {
<Glib::ObjectBase> = <invalid address>,
members of Glib::Object:
_vptr$Object = 0x7fff5fc06a20,
static object_class_ = {<No data fields>}
},
members of Gtk::Object:
static object_class_ = {<No data fields>},
referenced_ = 21,
gobject_disposed_ = 60
},
members of Gtk::TreeViewColumn:
static treeviewcolumn_class_ = {<No data fields>}
}
(gdb) next
152 col->set_resizable(true); /* col = 0x0 */
(gdb) print col
$3 = ('Gtk::TreeViewColumn' *) 0x0
(gdb) print *col
Cannot access memory at address 0x0
(gdb) next
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x00000001000edc68 in Gtk::TreeViewColumn::set_resizable()
я понятия не имею, что вызывает это явление. у тебя есть?
чтение документации. функция возвращения pcFolder отсчитывает от 1, get_column() от 0.
Как выглядит `get_column`? – Nim 2010-11-30 10:51:37
http://library.gnome.org/devel/gtkmm/2.22/classGtk_1_1TreeView.html#a513e50ad0acdd817d1a443f1eaa3debe – M3t0r 2010-11-30 10:57:21