Gsv ::缓冲区错误

时间:2015-06-26 10:37:58

标签: c++ gtkmm coredump gtksourceview

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

UPDATE tablename
SET fieldname1=temptable.data
FROM (
    SELECT UNNEST(ARRAY[1,2]) AS id,
           UNNEST(ARRAY['a', 'b']) AS data
) AS temptable
WHERE tablename.id=temptable.id;

我创建它:

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

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

buffer->create();

可执行文件退出并返回:

  

Erreur de segmentation(core dumped)

有什么问题?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

你创建了一个指针,但实际上并没有指向任何地方。实质上,Sub Macro2() ' ' Macro2 Macro ' ' Sheets("Sheet1").Select Rows("2:2").Select Selection.EntireRow.Hidden = True Rows("1:3").Select Selection.Copy Sheets("Sheet2").Select Rows("1:3").Select ActiveSheet.Paste End Sub 是一个空指针。

来自the RefPtr default constructor refernece

  

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

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

static