On Thu, 2006-09-07 at 19:35 -0700, dagang001 wrote: > #include <glib.h> > > typedef struct { > gchar * name; > gint shoe_size; > gint age; > } Person; > > > int main(int argc, char** argv) { > Person *fred = g_new(Person, 1); > GList *list = NULL; > > gint num,i; > gchar *ming[]={"aaa","bbb","ccc","ddd"}; > > > for ( i=0 ;i<4 ;i++) > { > fred->name = ming[i]; > fred->shoe_size = i+10; > fred->age=60+i; > list = g_list_append(list, fred); > } > > > num=g_list_length (list); > > for (i=0 ;i<num;i++) > { > g_print("%d '%s' %d %d \n", i, > ((Person *)g_list_nth (list,i)->data)->name, > ((Person *)g_list_nth (list,i)->data)->shoe_size, > ((Person *)g_list_nth (list,i)->data)->age); > } > > > > g_print("long%d \n\n", num); > g_list_free (list); > g_free(fred); > > return 0; > } > > > result: > > 0 'ddd' 13 63 > 1 'ddd' 13 63 > 2 'ddd' 13 63 > 3 'ddd' 13 63 > long4 > > help me !!
You only allocated one Person, so each time you go through the loop you're writing to the same storage area. You may wish to take a course or read a book on C, or use a higher-level language; C# and Python are well supported for writing GTK+ applications. Ed _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list