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

Reply via email to