[gtk-list] Re: GList problem



Dave Cole wrote:
>
> > for(i = 1; i <= WEEKS; i++)
> > {
> >         sprintf(string, "Week %d", i);
> >         list = g_list_append(list, string);
> >         printf("%s\n", string);
> > }
> >
> > g_list_foreach(list, (GFunc) PrintList, NULL);
> >
> >
> > The printf statement prints what I'd expect...."Week 1, Week 2, Week
> > 3..etc" However when I got thought the list with the foreach
> > function, and print out each value it shows that all the values are
> > "Week 17" (17 is what WEEKS is defined to).  So the last value is
> > getting inserted into the list WEEKS times.....what am I doing
> > wrong?
>
> When you add an entry a list, it does not make a copy of it.  The
> effect of your code is to make a list with WEEKS entries, all of which
> point to the same string.  The string contains the value that was
> formatted by the last iteration of the loop.
>
> - Dave
>
Ok, that makes sense.  How would you advise a newbie to fix this problem?  :)

Thanks,
Buck
--
======================================================================
Wesley (Buck) Lemke
http://www.dwave.net/~wesley
mailto:wesley@dwave.net
ICQ UIN: 4821438



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]