[Fwd: Need Help using GLib -> GList]



Pardon my double post. I was not subscribed on the first and it is awaiting moderator. So I subscribed and sent again. See below.

-------- Original Message --------
Subject: Need Help using GLib -> GList
Date: Sun, 03 Apr 2005 17:49:05 -0700
From: Jerry DeLisle <jvdelisle verizon net>
To: gtk-list gnome org

I am trying make a list of lists.  When I scan through this list of
lists using g_list_first() and g_list_next() it passes through the list
one time fine, then after that it does no more.  Here is a snippet:

GList * init_players(GList * thePlayers, int num){
    int i;
    GList * ahand;
    for (i=0;i<num;++i){
	ahand = g_new(GList, 1);
	ahand->data=NULL;
	thePlayers=g_list_append(thePlayers,ahand);
    }
    return(thePlayers);
}

void deal(GList * adeck, GList * theplayers){
    int count = 0;

    adeck=g_list_first(adeck);
    while (adeck != NULL){
	g_print("Outer loop %d.\n",++count);
	theplayers=g_list_first(theplayers);
	while(theplayers != NULL){
	    g_print("The player is %u.\n",theplayers);
	    g_print("Inner loop.\n");
	    theplayers=g_list_next(theplayers);
	}
	adeck=g_list_next(adeck);
    }
    g_print("%d cards were dealt.\n", count);
}

In a nutshell I am simulating dealing a deck of cards to num players.
The first pass through the inner while loop shows 'reasonable' pointer
values for theplayers list.  The second pass through, theplayers = NULL.
 The call to g_list_first is returning NULL for ever so the list seem
to be lost.  I am not appending anything to the list yet, I was just
trying to see if I can scan through the players list correctly.  When I
call this with num =4 I get four passes in the inner loop, after that it
doesn't work.

Can anyone give me some hints?

Jerry




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