|
我写了一个动态的往gtkclist控件中加入数据的函数如下:
[code:1]
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;
}
[/code:1]
这个函数开始运行时是没有错误的,运行良好,但运行一段比较长的时间后,有可能会出现段错误,好象是
out of memory造成的,我在这个函数中每次都把分配的空间给释放了啊,是不是函数写的有问题啊
麻烦大家帮帮我 |
|