Gsv::缓冲区错误

Gsv::buffer error

本文关键字:错误 缓冲区 Gsv      更新时间:2023-10-16

在我的c++项目中,我想使用GTKsourceview库中的Gsv::缓冲区。我这样申报我的缓冲区:

Glib::RefPtr<Gsv::Buffer> buffer;

我创建它:

buffer->create();

但是当我想使用从Gtk::buffer:继承的一些函数时

 buffer->set_text("somethings");

可执行程序退出并返回:

错误的去分割(核心转储)

问题出在哪里?

感谢您的帮助

您创建了一个指针,但实际上并没有使它指向任何地方。从本质上讲,buffer是一个空指针。

来自RefPtr默认构造函数引用:

之后它将为空,并且->的使用将导致分段故障。

您需要使用staticGsv::Buffer::create函数显式创建指向的对象,例如

Glib::RefPtr<Gsv::Buffer> buffer = Gsv::Buffer::create();