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 _______________________________________________ gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list