Re: Combo question



You need to allocate storage to hold the strings pointed at by the 2nd
parm to g_list_append().  The glist isn't responsible for allocating
fresh string space to hold the various strings pointed at by that 2nd
parm, so if you keep using the same pointer in calls to g_list_append(),
and at the end all those same pointers point to 'Zack', that's what you
should expect to see in the list.


  // Wally

On Thu, 2006-04-27 at 19:24 +0200, cybernick gmx net wrote:
Hi,

I'm pretty frustrated because I can't solve this by myself. Can you help
me?

I have a file that looks like

1 Adam
1 Bert
1 Daniel
2 Marc
2 Sam
..
..
9 Zack

and so on. That's an int number, a blank and a name. My code looks like this snip ...
GList *glist = NULL;
FILE *fp;
if ( ! ( fp = fopen(filename, "r")))
{
      fprintf(stderr, "Errror in opening data file %s: error: %s\n", filename, strerror(errno));
}
else
{
      while (fscanf(fp, "%i %s", f_i, f_c) != EOF)
      {
              if ( f_i == 1 )
              {
                      fprintf(stderr, "f_i: %i;\tadding: %s\n", f_i, f_c);
                      /* everything correct up to here */
                      glist = g_list_append(glist, f_c);
              }
      }
      fclose(fp);
}
gtk_combo_set_popdown_strings(GTK_COMBO(combo), glist);
g_list_free(glist);


The output from the fprintf is absolutely correct. In the combo I have
the correct number of entries but all of them are 'Zack'. What's wrong
with my code? I had a look at this for several hours and I googled a
long time but I don't find it.

Please help me. I really appreciate your help.
Thank you in advance
Regards

-- 
Your eyes are weary from staring at the CRT.  You feel sleepy.  Notice
how restful it is to watch the cursor blink.  Close your eyes.  The   
opinions stated above are yours.  You cannot imagine why you ever felt
otherwise.



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