typedef struct node
{
int n;
node *left;
}*tnode;

传参的时候注意用**

void init(node **nn);
int main()
{
tnode nna;
init(&nna);
cout<<nna->n<<endl;
return 0;
}
void init(node **nn)
{
*nn=(tnode)malloc(sizeof(node));
(*nn)->n=0;
(*nn)->left=NULL;
}

因为传的是*就只是形参,并不会改变这个地址上真正的值。

或者用另一个方法:

int main()
{
tnode nna,nnb;
init(&nna);

nnb=initb(nnb);
cout<<nna->n<<" "<<nnb->n<<endl;
return 0;
}

node* initb(node *nn)
{
nn=(tnode)malloc(sizeof(node));
nn->n=1;
nn->left=NULL;
return nn;
}

把node指针返回回去就可以改变值了。

C++的结构体指针传参的更多相关文章

  1. C#调用C++ dll时,结构体引用传参的方法

    写了一个C++的LogLog Logit 四参数等算法的接口dll,给C#调用,但是发现传参有问题 如 extern "C" _declspec(dllexport)  bool ...

  2. C++结构体与Delphi结构体相互传参,结构体中包含结构体的嵌套,数组指针

    //结构体的声明 typedef struct Mwinddirectbaseline { char* p; int s; int i; }Mwinddirectbaseline; typedef s ...

  3. ctypes 操作 python 与 c++ dll 互传结构体指针

    CMakeLists.txt # project(工程名) project(blog-3123958139-1) # add_library(链接库名称 SHARED 链接库代码) add_libra ...

  4. C语言_了解下结构体指针

    在C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型.当然也可以指向结构体,先看一个小案例: #include <stdio.h> #include <string.h&g ...

  5. go语言的结构体指针

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型.   结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.   结构体表示一项记录,比 ...

  6. [编程] C语言结构体指针作为函数参数

    结构体指针作为函数参数:结构体变量名代表的是整个集合本身,作为函数参数时传递的整个集合,也就是所有成员,而不是像数组一样被编译器转换成一个指针.如果结构体成员较多,尤其是成员为数组时,传送的时间和空间 ...

  7. Leetcode 2. Add Two Numbers(指针和new的使用)结构体指针

    ---恢复内容开始--- You are given two non-empty linked lists representing two non-negative integers. The di ...

  8. C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用

    类型 普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针 定义方式 int *p; int *p[5]; int (*p)[5]; int a[3][5]; struct{.. ...

  9. python 传递结构体指针到 c++ dll

    CMakeLists.txt # project(工程名) project(xxx) # add_library(链接库名称 SHARED 链接库代码) add_library(xxx SHARED ...

随机推荐

  1. C# 定时任务

    工作中需要做个每天定时发邮件的功能,了解之后知道java里有做定时任务比较容易的方法,就是Quartz,在C#里叫Quartz.Net. 在写代码之前需要引用几个dll文件,分别是C5.dll.Com ...

  2. 关于Python 解包,你需要知道的一切

    解包在英文里叫做 Unpacking,就是将容器里面的元素逐个取出来(防杠精:此处描述并不严谨,因为容器中的元素并没有发生改变)放在其它地方,好比你老婆去菜市场买了一袋苹果回来分别发给家里的每个成员, ...

  3. 神经网络的另一种非线性阶跃函数---ReLU函数

    import numpy as np import matplotlib.pylab as plt from matplotlib.font_manager import FontProperties ...

  4. android---EditText的多行输入框

    <EditText android:id="@+id/edt_order_note_text" android:layout_width="match_parent ...

  5. PC端实现微信登录浅析

    二维码 首先,二维码在编制上巧妙地利用构成计算机内部逻辑基础的“0”.“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理 ...

  6. 韩天峰《大话PHP设计模式》听课笔记

    课程主要内容 1.PHP面向对象的高级特性 2.11种设计模式 3.PSR-0,Composer,Phar等最流行的技术 目标 掌握PHP各类设计模式,并具备设计纯面向对象框架和系统的能力   二.编 ...

  7. python基础知识练习题(一)

    1.执行Python脚本的两种方式:WIN+R,cmd,命令行窗口输入:python  进入python模式输入命令行直接执行命令:编写以.py结尾的文件,写入命令行,然后运行python.exe打开 ...

  8. windows下apache+https环境配置

    windows下apache+https环境配置 转 https://www.cnblogs.com/sandaizi/p/7519370.html 1.修改配置文件conf/httpd.conf,去 ...

  9. Navicat Premium 12.1.12.0安装与激活

    转载自:Navicat Premium 12.1.12.0安装与激活 作者:丿记忆灬永殇丨 链接:https://www.jianshu.com/p/5f693b4c9468 navicat12112 ...

  10. 小白的学习之路(hello wold!)

    Hello word ! 一直想写博客,但是都拖延了,正好两天有假期就开始弄这个事情了.开始觉得写博客也没有什么,一路学习以来都是看别人的博客进行学习,也收藏了不少博客,学到了不少东西,所以我觉的博客 ...