当前位置: 技术问答>linux和unix
GTK+ 如何让GList做函数实参操作
来源: 互联网 发布时间:2016-04-20
本文导语: 各位高人,我想将GList定义的链表作为实参传递给子函数操作,但是失败,请指导正确的方法,感谢。 我的代码如下: main(){ GList *list1 = NULL; //定义 add_list_accont(list1); //调用子函数操作 g_printf("%dn",...
各位高人,我想将GList定义的链表作为实参传递给子函数操作,但是失败,请指导正确的方法,感谢。
我的代码如下:
我的代码如下:
main(){
GList *list1 = NULL; //定义
add_list_accont(list1); //调用子函数操作
g_printf("%dn",g_list_length(list1)); //输出结果为0,表示长度没有改变
}
void add_list_accont(GList *list1){
list1 = g_list_append (list1, "test1"); //添加一个节点
g_printf("%dn",g_list_length(list1)); //输出结果为1,表示长度已改变
}
|
void add_list_accont(GList **plist){
*plist = g_list_append (*plist, "test1"); //添加一个节点
}
int main()
{
GList *list1 = NULL; //定义
g_printf("%dn",g_list_length(list1)); //输出结果为0
add_list_accont(&list1); //调用子函数操作
g_printf("%dn",g_list_length(list1)); //输出结果为1
return 0;
}
|
不好意思我搞错了,我帮你改了下,可以运行了,输出1,1
#include
void add_list_accont(GList **list1){
*list1 = g_list_append (*list1, "test1"); //添加一个节点
g_printf("%dn",g_list_length(*list1)); //输出结果为1,表示长度已改变
}
main(){
GList *list1 = NULL; //定义
add_list_accont(&list1); //调用子函数操作
g_printf("%dn",g_list_length(list1)); //输出结果为0,表示长度没有改变
}