Re: why???
- From: Edward Catmur <ed catmur co uk>
- To: gtk-app-devel-list gnome org
- Subject: Re: why???
- Date: Fri, 08 Sep 2006 15:42:22 +0100
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]