0

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

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

我创建它:

buffer->create();

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

 buffer->set_text("somethings");

可执行退出并返回:

Erreur de segmentation(核心转储)

问题是什么?

谢谢你的帮助

4

1 回答 1

0

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

默认构造函数参考RefPtr

之后它将为空,使用 of->将导致分段错误。

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

Glib::RefPtr<Gsv::Buffer> buffer = Gsv::Buffer::create();
于 2015-06-26T10:42:31.643 回答