我是GTK+的新手,当我尝试编译我的程序时,我遇到了分段错误。我已经将错误的原因隔离为以下代码行。
GtkTextBuffer *buffer;
char buffers[65535];
struct ip *ip;
.
.
.
ip = (struct ip *)buffers;
gtk_text_buffer_insert_at_cursor (buffer,ip->ip_protocol, -1);
(ip_protocol是结构 IP 中的变量)
我正在尝试使用指针在文本视图的光标处插入位于"缓冲区"中的字符"ip_protocol"的值。不幸的是,在这种情况下我必须使用指针。任何人都可以帮助纠正我的代码吗?
你从不初始化你的(根据您的注释,您在遗漏的代码部分中初始化变量,因此本段不适用于您的实际代码)。buffer
变量(或buffers
的内容),所以当你传递它时,它的值是未定义的 do gtk_text_buffer_insert_at_cursor
.在将它传递给函数之前,您需要让它指向一个GtkTextBuffer
。
此外,你说你的ip_protocol
变量是一个char
,但gtk_text_buffer_insert_at_cursor
的第二个参数应该是一个指针。因此,这会导致分段错误也就不足为奇了。