|
大家看看问题出在哪??
#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;
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;
}
结果:
0 'ddd' 13 63
1 'ddd' 13 63
2 'ddd' 13 63
3 'ddd' 13 63
long4
为什么都是ddd,请高手指点. |
|