`
kenby
  • 浏览: 726453 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个小问题,如何用函数修改变量的值

 
阅读更多

今天写二叉树的时候遇到一个小问题,写了一个create_node函数用来创建一个二叉树的节点。代码如下:

 

 

void create_node(node_t **pnode) 

{

node_t *tmp;

 

tmp = *pnode;

tmp = (node_t *)malloc(node_t);

        tmp->data = 3333;

}

 

用如下方式调用:

 

 

node_t *node = NULL;

create_node(&node);

 

我的目标是创建一个节点,数据为3333,然后把node指向该节点,可是,函数调用结束后,node依然为NULL

我们都知道,要想通过函数修改变量的值,必须把该变量的地址做为参数传给函数使用,这里我的确把node变量的地址

传给了create_node,但是create_node使用指针的方式不正确:程序只修改了局部变量tmp的值,没有影响到pnode指针所

指向的指针,即没修改node指针,正确的方式是:

 

 

void create_node(node_t **pnode) 

{

node_t *tmp;

 

tmp = (node_t *)malloc(node_t);

        tmp->data = 3333;

        *pnode = tmp;

}

 

先创建节点,然后把node指向这个节点。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics