Re: Glib -> GList
- From: Norm Reitzel <NormReitzel swbell net>
- To: gtk-list gnome org
- Subject: Re: Glib -> GList
- Date: Thu, 02 Jan 2003 15:40:43 -0600
About the best tutorial I've come across is the old Borland tutorial on C++.
On Thu, 2 Jan 2003 16:09:16 -0500
"MET @ Uber" <met uberstats com> wrote:
> On Wednesday 01 January 2003 12:48 am, James M. Cape wrote:
> > On Tue, 2002-12-31 at 23:21, MET @ Uber wrote:
> > > I'm trying without any luck to find documentation on using GList in a
> > > situation with more than one node. I know that it's basic structure
> > > contains a 'next' pointer and a void pointer called 'data'. While
> > > researching it I read something about using the void data pointer to be
> > > able to point to anything such as another structure, but I haven't found
> > > any examples. This email proves that I am not a very experienced
> > > programmer, so using a void pointer to me is brand new. Any suggestions
> > > or links to suggestions on using GList with my own data (as it appears to
> > > be great) would be very appreciated.
> > >
> > > Thanks in advance,
> > >
> > > ~ Metnetsky
> > A void pointer just means an untyped pointer, or a pointer to anything.
> > Typically you use the "data" member of a GList/GSList when you want to
> > retrieve the data from a list item:
> > Example:
> > GList *list = NULL;
> > gchar *str = "some string";
> > list = g_list_append (list, str);
> > g_message ("The contents of the first node in list is \"%s\".", (gchar
> > *) (list->data));
> > This creates a new GList item with the data set to str ("some string"),
> > and appends it the end of the (empty) GList, "list".
> > The g_message output would be:
> > some-app (pid) Message: The contents of the first node in list is "some
> > string".
> > Since it's a void pointer, you can store anything you want as the data,
> > like GtkWidgets, your own structs, ints (using GINT_TO_POINTER()), etc.
> > Basically, rather than creating a new list type for every data type you
> > want to store, doing it with a gpointer means you can re-use the same
> > code for anything (though it also means that it's a good idea to see if
> > the contents of "data" are valid before doing anything, and it also
> > means deep freeing the list is not as simple as g_list_free()).
> I was wondering if you, or anyone else could explain how to use the data void
> pointer in GList to point to another structure. Any kind of structure would
> do, the simpler the better I'd imagine. Thanks in advance, and I hope this
> isn't something too complicated to email. Oh, if you know of a site that has
> this in some tutorial/example/documentation form that would be perfect too.
> ~ Metnetsky
> gtk-list mailing list
> gtk-list gnome org
] [Thread Prev