В моем проекте на c ++ я хочу использовать буфер Gsv :: из библиотеки GTKsourceview.
Я объявляю свой буфер следующим образом:
Glib::RefPtr<Gsv::Buffer> buffer;
Я создаю это:
buffer->create();
Но когда я хочу использовать некоторую унаследованную функцию от Gtk :: buffer:
buffer->set_text("somethings");
Исполняемый файл выхода и возврата:
Ошибка сегментации (ядро сброшено)
В чем проблема?
Спасибо за вашу помощь
Вы создаете указатель, но на самом деле вы нигде не указываете его. По сути, buffer
пустой указатель
От RefPtr
ссылка на конструктор по умолчанию:
После этого он будет нулевым и использование
->
вызовет ошибку сегментации.
Вы должны явно создать объект, на который указывает static
Gsv::Buffer::create
функция, как, например,
Glib::RefPtr<Gsv::Buffer> buffer = Gsv::Buffer::create();