免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2716 | 回复: 6
打印 上一主题 下一主题

有一个小问题,麻烦各位看看 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-25 23:35 |只看该作者 |倒序浏览
我写了一个动态的往gtkclist控件中加入数据的函数如下:
void add_event_to_clist(int number)
{
  int i;
  gchar *alert[11];
  char current_time[32];
  char current_day[32];
  for (i = 0; i <11; i++)
    alert[i] = (gchar *) g_malloc (sizeof (gchar) * 64);       
  get_current_time(current_time,current_day);//获得当前时间的函数
  sprintf (alert[0], "%s", current_time);
  sprintf (alert[1], "%s", event_name[number]);//event_name是全局变量,下面的也是
  sprintf (alert[2], "%s", sourcemac);
  sprintf (alert[3], "%s", destinationmac);
  sprintf (alert[4], "%s", ip_header_string_object.source_ip);
  sprintf (alert[5], "%s", ip_header_string_object.destination_ip);
  sprintf (alert[6], "%s", event_protocol[number]);
  sprintf (alert[7], "%s", event_code[number]);
  sprintf (alert[8], "%s", event_defination[number]);
  sprintf (alert[9], "%s", event_information[number]);
  sprintf (alert[10], "%s", alert_type[number]);
  while (gtk_events_pending ())       
    gtk_main_iteration ();
  gtk_clist_append (GTK_CLIST (clist_event), alert);
  for (i = 0; i <11; i++)
      g_free(alert[i]);
  return;
}
这个函数开始运行时是没有错误的,运行良好,但运行一段比较长的时间后,有可能会出现段错误,好象是
out of memory造成的,我在这个函数中每次都把分配的空间给释放了啊,是不是函数写的有问题啊
麻烦大家帮帮我

论坛徽章:
0
2 [报告]
发表于 2006-05-26 08:53 |只看该作者
从来没用过GTKLIST,不知道你的做法是不是对的。
GTKLIST是把你给它的字串都复制一份自己管理吗?

论坛徽章:
0
3 [报告]
发表于 2006-05-26 09:10 |只看该作者
不要g_malloc 和 g_free,
直接  alert[0]=current_time,
alert[1]=event_name[number];
看看

论坛徽章:
0
4 [报告]
发表于 2006-05-26 12:40 |只看该作者
不分配内存,运行有错误的,我试过了

论坛徽章:
0
5 [报告]
发表于 2006-05-26 13:15 |只看该作者
这是gtk_clist_append ()的函数说明
gtk_clist_append ()
gint gtk_clist_append(GtkCList *clist, gchar *text[]);
Adds a row to the CList at the bottom.
clist : The GtkCList to affect.
text :         An array of strings to add.
Returns : The number of the row added.

论坛徽章:
0
6 [报告]
发表于 2006-05-29 00:43 |只看该作者
你能保证alert[i]的长度小于64?

论坛徽章:
0
7 [报告]
发表于 2006-05-30 14:34 |只看该作者
这个我能保证,我后面改成了snprintf()
是不是GTKCLIST这个控件本身有问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP