Hello Thanks for answer. > Did you mean Last list element: 0x832c610 is differ from INIT list > prt: 0x830f080? No.
Lest's see... i got function "do_work" with: 1. new Glist init with random data 2. callback definition of button click: button_click(...., GList *list) let init list poiner = 0xfe button was clicked! Here button_click(GList *list) list in agrs = 0xfe new data record memory allocation. !!! g_list_append(data, list) !!! In my example it returns init list value (0xfe), but should returns value of newly created list (0x832c610 in example). In example: INIT list prt: 0x830f080 - this is init list, which passed to button_callback In button callback: Created: 0x830f080, arg: 0x830f080 - first ptr is returned list from g_list_append(), but it equal to init list. WTF??? HOW?? I need newly created list here... And i check added value with g_list_last(). It's equal 0x832c610 and correct. So, why g_list_append() dont' return me newly created list??? В сообщении от Среда 15 августа 2012 09:33:04 вы написали: > Hi, > > > In button_cb()... > > Did you mean Last list element: 0x832c610 is differ from INIT list > prt: 0x830f080? > > It's clear because 0x830f080 was the location of first list and > 0x832c610 is the last appended list. > g_list_prepend() return to the start of the list, g_list_last() return > the last of the list (address). > > > in test_glist() > > First you call temp = g_list_insert(test, ...), test = NULL, save the > list to temp pointer to GList, > second, you call temp = g_list_append(test, ...), nothing wrong with > that code! BUT if you suppose to insert 2nd list here, then you are > wrong. Because, test is STILL NULL. It returns the newly allocated > list again, that's why it's differ. You should call call temp = > g_list_append(temp,...) or to insert the next list. > > > In real program, i need to get newly created list pointer in function > > like button_cb(), but don't know how to do it. > > Just pass it through callback's argument or declare it as global variable. > > On Wed, Aug 15, 2012 at 8:04 AM, Vlasov Vitaly <vnig...@gmail.com> wrote: > > Hi, list. > > > > I can't understand, why g_list_append return different values in > > my > > > > callback's(please read source). In first case i got same list, which was > > obtained from arguments. In second case g_list_append returns newly > > created list. > > Why result's is are not the same? > > > > In real program, i need to get newly created list pointer in function > > like button_cb(), but don't know how to do it. > > > > source: http://pastebin.com/4gMREKwd > > > > output on my laptop: > > INIT list prt: 0x830f080 > > Created: 0x830f080, arg: 0x830f080 > > Last list element: 0x832c610 > > Init list ptr: 0x832c5c0 > > Second list ptr: 0x830f120 > > End > > _______________________________________________ > > gtk-app-devel-list mailing list > > gtk-app-devel-list@gnome.org > > https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list