使用Glib向GSList添加自定义结构

我正在尝试使用函数g_slist_append(list,&structure)将结构添加到单链表中。 这似乎工作(它添加指针),但我似乎无法找到一种方法来查看链接列表时结构中的元素。

我的结构看起来像这样:

struct customstruct { int var1; int var2; char *string_1; } 

然后,我列出一个列表: GSList *list = NULL;

然后,我附加一个结构的实例,如下所示:

  struct customstruct list_entry; list_entry.var1 = 1; list_entry.var2 = 2; list_entry.string_1 = "String"; list = g_slist_append(list, &entry); printf("Entry var1 = %d\n", list->data->var1); 

最后一行失败,因为无法找到var1 (请求成员不是结构或联合)。

我想我需要把它投到正确的类型,但我不知道如何。 任何人?

我猜测GSList结构的data成员是一个void指针,即一个指向任何东西但没有任何其他类型信息的指针。

这意味着你必须使用类型转换:

 ((struct customstruct *) list->data)->var1