在我的c++项目中,我想使用GTKsourceview库中的Gsv::缓冲区。我这样申报我的缓冲区:
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();