在 gtk 中获取断言失败错误。
Getting assertion failed error in gtk.
我刚开始使用 GTK。这是我的代码的一小部分。目的是复制整个当前行。内容存储在 "line" 中。 "start" 和 "end" 是行首和行尾的文本输入器。
gtk_text_iter_set_line_offset (start, 0);
gtk_text_iter_forward_to_line_end (end);
line = gtk_text_iter_get_text (start, end);
gtk_clipboard_set_text (clipboard, line, -1);
执行后,我收到以下错误消息。
Gtk[27786]: CRITICAL: gtk_text_iter_set_line_offset: assertion 'iter != NULL' failed
Gtk[27786]: CRITICAL: gtk_text_iter_forward_to_line_end: assertion 'iter != NULL' failed
Gtk[27786]: CRITICAL: gtk_text_iter_get_text: assertion 'start != NULL' failed
Gtk[27786]: CRITICAL: gtk_clipboard_set_text: assertion 'text != NULL' failed
代码块有什么问题?我该如何解决?
谢谢大家:)
您可能已将迭代器声明为 GtkTextIter *start
。相反,根据 GTK 文档中的 text widget conceptual overview,“GtkTextIter
是一个设计用于在堆栈上分配的结构;它保证可以按值复制,并且从不包含任何堆分配的数据。”这意味着你不应该将它们声明为指针:
GtkTextIter start, end;
// ...
gtk_text_iter_set_line_offset (&start, 0);
gtk_text_iter_forward_to_line_end (&end);
line = gtk_text_iter_get_text (&start, &end);
我刚开始使用 GTK。这是我的代码的一小部分。目的是复制整个当前行。内容存储在 "line" 中。 "start" 和 "end" 是行首和行尾的文本输入器。
gtk_text_iter_set_line_offset (start, 0);
gtk_text_iter_forward_to_line_end (end);
line = gtk_text_iter_get_text (start, end);
gtk_clipboard_set_text (clipboard, line, -1);
执行后,我收到以下错误消息。
Gtk[27786]: CRITICAL: gtk_text_iter_set_line_offset: assertion 'iter != NULL' failed
Gtk[27786]: CRITICAL: gtk_text_iter_forward_to_line_end: assertion 'iter != NULL' failed
Gtk[27786]: CRITICAL: gtk_text_iter_get_text: assertion 'start != NULL' failed
Gtk[27786]: CRITICAL: gtk_clipboard_set_text: assertion 'text != NULL' failed
代码块有什么问题?我该如何解决? 谢谢大家:)
您可能已将迭代器声明为 GtkTextIter *start
。相反,根据 GTK 文档中的 text widget conceptual overview,“GtkTextIter
是一个设计用于在堆栈上分配的结构;它保证可以按值复制,并且从不包含任何堆分配的数据。”这意味着你不应该将它们声明为指针:
GtkTextIter start, end;
// ...
gtk_text_iter_set_line_offset (&start, 0);
gtk_text_iter_forward_to_line_end (&end);
line = gtk_text_iter_get_text (&start, &end);