Re: [gtk-list] GList problem




> 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

-- 
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS dpu s-:+ a C++$ ULS++$ P+++$>++++ L++>+++$ E+>++ W N++ !o K w++$ O !M-
!V(-) PS+ PE- Y+ PGP !t-- 5++ X R tv b+ DI+++ D G e++ h--- r+++ y++++
------END GEEK CODE BLOCK------



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