C语言 GTK 分段错误



我是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的第二个参数应该是一个指针。因此,这会导致分段错误也就不足为奇了。

最新更新