`
kenby
  • 浏览: 726469 次
  • 性别: 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指向这个节点。

分享到:
评论

相关推荐

    指针函数和函数指针变量

    通过指针,我们可以直接操作被指向的变量,实现间接访问和修改变量值的功能。在声明指针变量时,我们需要指定它所指向的数据类型,例如`int *p`表示p是一个指向整型变量的指针。 接下来,我们来讨论函数。函数是...

    c语言指针函数修改变量的值

    c语言指针修改函数内部变量的值

    TIA博途中如何使用MAX和MIN数学函数求取几个变量的最大值和最小值?.docx

    在TIA博途中,利用MAX和MIN数学函数可以轻松地找出一组变量中的最大值和最小值,这对于数据处理和分析非常有用。以下是如何在TIA博途中操作这些函数的详细步骤: 1. 首先,创建一个新的项目。在TIA博途软件中,选择...

    全局变量的使用,函数func1中引用全局变量count,函数func1中调用函数func2

    但要注意,如果`func2`内部也定义了一个同名的局部变量`count`,那么在`func2`内部,全局的`count`将会被隐藏,除非使用`global`关键字显式声明引用全局变量。 关于函数调用,`func1`调用`func2`是一种常见的代码...

    Swift视频教程:函数篇 变量参数

    在这个`updateValue`函数中,`var value`就是一个变量参数,我们可以在函数内部增加它的值。当我们调用此函数并传入一个整数时,该数值会被修改并打印出来。 然而,需要注意的是,虽然变量参数在函数内部可以被修改...

    c++修改系统环境变量

    总结来说,本文介绍了如何在C++环境下,特别是Windows操作系统中,使用`SetEnvironmentVariable`函数修改系统环境变量。同时,我们也提及了与之相关的C++语言特性以及MFC库在Windows应用程序开发中的应用。实际项目...

    linux常用c函数 环境变量篇.txt

    如果找到了相应的环境变量,则返回该环境变量值的指针;如果没有找到,则返回NULL。 **参数说明**: - `name`: 指向环境变量名的字符串指针。 **示例代码**: ```c #include #include int main() { char *p;...

    vb的示例程序自定义函数、变量应用、单元格条件颜色等

    在VB中,我们使用`Function`关键字来声明一个函数。例如,如果我们想创建一个求平方的函数,可以这样写: ```vb Function Square(ByVal num As Integer) As Integer Square = num ^ 2 End Function ``` 在这个...

    c++ 修改注册表设置环境变量

    以下是一个简单的示例代码,展示如何在C++中修改环境变量: ```cpp #include #include int main() { HKEY hKey; if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session ...

    python实现在函数中修改变量值的方法

    如果函数收到的是一个可变对象(比如字典或者列表)的引用, 就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用, 就不能直接修改原始对象...

    第2章:VC程序设计基础——变量与函数

    指针是存储变量地址的特殊变量,它可以用来间接访问和修改其他变量的值。引用是另一种别名机制,一旦初始化后,引用总是指向同一对象,不能改变引用本身。与指针相比,引用更安全且没有空引用的概念。 3. 函数的...

    C程序中用指针变量作函数参数

    在`main`函数中,通过传递变量`x`和`y`的地址给`swap`函数,最终实现了变量值的交换。 ##### 2. 通过函数调用得到n个要改变的值的方法 当需要修改多个变量的值时,可以使用多个指针变量作为函数参数。 **步骤**:...

    函数拟合的matlab代码

    函数拟合是寻找一个数学函数,使得该函数通过或者最接近给定的数据点。这个过程通常涉及到最小二乘法,即寻找使所有数据点到函数曲线的垂直距离平方和最小的函数。MATLAB提供了强大的工具箱,如 Curve Fitting ...

    Unity3D脚本:如何调用更改其他脚本中的变量2

    3. 在需要修改变量的函数中,通过实例调用`setter`方法设置变量值,使用`getter`方法获取变量值。 4. 在Unity编辑器中将对应的对象实例拖放到相应的脚本字段上,完成实例的绑定。 通过这种方式,你可以轻松地在...

    利用静态变量对函数访问次数计数.zip

    在编程中,有时候我们需要追踪一个函数被调用的次数,以进行性能分析或者实现特定功能。在这种情况下,我们可以使用静态变量来实现这个目的。本文将深入探讨如何利用静态变量对函数访问次数进行计数,以及这种方法...

    Qt 多线程访问同一个变量

    由于它们都使用了相同的QMutex,所以每次只有一个线程能够修改变量,从而保证了数据一致性。 总结来说,Qt的多线程机制和QMutex类是解决多线程并发访问问题的关键工具。通过正确地使用互斥锁,我们可以确保全局变量...

    3.8 函数参数与变量的作用域(ppt).pdf

    全局变量则不同,它们在整个MATLAB会话中都是可见的,任何函数都可以读取和修改全局变量的值。定义全局变量的语句是`global 变量名`。在示例中,`ALPHA`和`BETA`被声明为全局变量。在函数`wad`中,即使没有在函数...

    反射修改私有成员变量例子

    在本例中,我们将使用 Java 反射机制来修改私有成员变量的值。 什么是 Java 反射机制? Java 反射机制是 Java 语言中一个内置的机制,它允许程序在运行时检查和修改类的结构和行为。反射机制提供了一种方式来在...

Global site tag (gtag.js) - Google Analytics