Re: passing glist to func



void foo(GList *a)
{
  a=g_list_append(a, "text");
  a=g_list_first(a);
  printf("a=%s\n", (char *) a->data);
}

The g_list_*() functions you called there work like realloc(), meaning
their return pointer may not be the same as the input one.

So I would make:

GList *foo(GList *a)
{
        a = g_list_append(a, "text");
        a = g_list_first(a);
        return(a);
}


Then in main:


int main()
{
  GList *list=NULL;
  foo(list);
  list=g_list_first(list);
  printf("list=%s\n", (char *) list->data);
  return 0;
}

Change that to:

int main()
{
        GList *list = NULL, *next;

        list = foo(list);
/*      list = g_list_first(list); */

        next = list;
        while(next != NULL)
        {
            printf("list = %s\n", (char *)next->data);
            next = next->next;
        }

        return(0);
}



--
Sincerely,                  ,"-_                         \|/
-Capt. Taura M.             ,   O=__                    --X--
..__                         ,_JNMNNEO=_                 /|\
OMNOUMmnne.                  {OMMNNNEEEEOO=_
UOOOBIOOOEOMMn.               'LONMMMMNNEEEOOO=.__..,,..
UUOOEUUOOOOOOOObe              '"=OMMMMWNEEEOOOOO,"=OEEEOO=,._
OOUUUIEEIOONNOIUbe.                "7OMMMMNNNNNWWEEEEOOOOOO"   "'.
EEBNNMMMNWNWWEEIMMNe.             __  7EMMMNNNNNWWWEEEEEEEOO.     " .
NNMMMMWWWMMMWEINMMMNn            "=BBEEEEMMMMMMMMNNNWWWEEOOOOO=._     .
                  http://furry.ao.net/~learfox/





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