当前位置:  技术问答>linux和unix

关于GTK表格控件中sprintf函数的一个问题

    来源: 互联网  发布时间:2016-04-19

    本文导语:  static void append_item(GtkWidget *widget, gpointer entry) {     char *row[3];     int i=2;     sprintf(row[0],"%s",gtk_entry_get_text(entry));     sprintf(row[1],"%d",i); /*运行此行前后row[1]均为空指针,不能赋值*/     sprintf(row[2],"%d",gtk_spin_button_...


static void append_item(GtkWidget *widget, gpointer entry)
{
    char *row[3];
    int i=2;
    sprintf(row[0],"%s",gtk_entry_get_text(entry));
    sprintf(row[1],"%d",i); /*运行此行前后row[1]均为空指针,不能赋值*/
    sprintf(row[2],"%d",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spinbutton)));
    gtk_clist_append(GTK_CLIST(ready_list),row);
}

单步调试时发现以上代码中row[1]在一开始就是空指针了,其他2个都是正常的;如果是char *row[4],那么row[4]也是一开始就是空指针。请问应该怎样给row[1]赋值呢?

|
原因是你没有给指针申请内存空间。
char *row[3]
这只是三个指向字符变量的指针。但这三个指针
row[0] row[1] row[2]
并没有指向任何已经申请的空间,所以你往里面写东西结果基本上会是段错误。

你可以变量初始化时申请内存
char[3][10]

也可以自己动态在堆上申请


char *row[3]
row[0] = malloc(10);
row[1] = malloc(10);
row[2] = malloc(10);

|
对了,你都已经在写gtk了,所以建议你用glib里封装的一些容器,如Gstring以及与这个类相关的函数如g_string_printf

这些东西比较方便,并且能保证你在不现的平台上编译的时候都可以正常通过运行。


    
 
 

您可能感兴趣的文章:

  • gtk编程问题,如何在一个线程中向gtk控件发送一个expose_event消息
  • GTK+中关于改变控件颜色及字体的问题
  • 请问在gtk中怎么改变控件大小?
  • GTK中如何在界面上切换几组控件?
  • 一个线程函数如何取得GTK界面的所有控件指针?
  • GTK 图像控件显示问题
  • 获取GTK控件的XWINDOW ID
  • 求助:关于gtk的entry控件的问题
  • 用GTK+怎么让treeview控件带上背景图片?哪位高人给个思路?
  • 英文环境下,如何使gtk控件显示中文
  • 请教Solaris下怎样才能正确显示gtk程序中控件上的中文??
  • gtk编程,如何取得当前焦点在哪个控件上
  • 请教 gtk编程,nootbook控件切换标签时信号量处理的问题
  • 100分求助:GTK notebook控件切换页面失灵!!!!1
  • 如何让GTK+ 的控件响应 mouse move事件?
  • 【求助】 在 GTK+ 中如何设置控件的字体样式?
  • 请问,用 gtk+ 怎么实现类似 windows 下列表视图+复选控件 的功能?
  • gtk编程中关于gtk_widget_show函数的问题
  • GTK+中类似gtk_hbox_new这样的给构件分配内存的函数 为什么不用手动释放?
  • linux下如何查看gtk函数
  • 请问gdk和gtk的函数库是怎么按装的?
  • 线程函数里不能调用消息对话框吗?(GTK界面)
  • gtk 回调函数的参数传递问题!
  • gtk 中回调函数传值问题
  • 求助,关于GTK的退出函数
  • GTK+编程用什么函数实现窗口的最大化最小化控制?
  • Gtk_Entry调用回调函数失败
  • 请问:redhat 里有gtk的帮助文档吗,看到一些函数都不知道它的作用是什么啊
  • 如何通过gtk的函数在程序里获取显示器的分辨率????????
  • 如何将GTK中的CallBack函数封装成类似JAVA接口类的使用方法
  • 问几个关于GTK的函数........大虾们看看:(.........在线等哦:(
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于gtk的目录问题,我的目录是 gtk-2.0/gtk/gtk.h ??
  • Redhat linux9.0 下Gtk+编程的#include <gtk/gtk.h>问题
  • 【重要】gtk+ 编译gtk+的问题,不同于一般gtk的搭建--1000分,问题解决了,开号给分,决不食言!大家都来看看
  • gtk 和 gtk+ 有什么区别?
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • 我使用GTK+2.0写界面程序时,怎么找不到gtk.h文件?
  • GTK+ gtk_tree问题
  • gtk for win 和 gtk for linux 下的程序问题?
  • GTK窗口前端显示及GTK窗口闪烁
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 【GTK】GTK中有没有这个widget?
  • 我想学习GTK+2.0,请问如何准备GTK编程环境???
  • [GTK] gtk最小化问题与恢复问题
  • 【gtk+】初学gtk+,请教一个问题
  • 【gtk】关于gtk布局问题
  • 本人刚学gtk编程,留下油箱,欢迎喜欢gtk编程的朋友和我交流啊!!!!
  • 大家好,想知道gtk与gtk+有什么区别?
  • 关于GTK中gtk_widget_hide()的问题
  • gtk中如何获取gtk_text_view中的输入内容?
  • 请问:gtk有哪些信息啊,delete_event是不是个信息啊,哪有gtk信息的资料啊,帮助上有吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3