现在有这种需求,在main函数中建立一个二叉树的root结点的指针,在tree_create函数中malloc或者new一个二叉树结点,然后在main函数中能正常的访问这个新建的结点。

注:这里的tree_create的返回值为void,也就是说不能通过函数的返回值返回指向结点的指针。

能想到的办法就是通过二级指针往回拉结点的数据。具体的实现流程是这样的:

void tree_create(tree **tmp);

int main(void)
{
tree *T = NULL;//T是二叉树结点的指针 //把T的地址传递给tree_create函数的tmp
//传递的值放在tmp对应的内存单元中
tree_create(&T);
}

这里也给出一种错误的方法,分析他们的内存的存储方式:

void tree_create(tree *tmp);

int main(void)
{
tree *T = NULL;//T是二叉树结点的指针 //把T的内容,也就是T对应的内存单元里的数据
//这个数据要么是某个结点的内存地址,要么是NULL
//把这个值传递给tree_create函数的tmp
tree_create(T);
}

先来看错误的方式的内存的排布方式:

再来看正确的方式的内存的排布方式:

上面通过内存展示的方式,分析了通过二级指针回拉数据的工作方式。同时也把错误的方式展示了。

pthread_join函数怎样往回拉线程的返回值


先看pthread_join的函数原型:

int pthread_join(pthread_t thread, void **value_ptr);

在调用pthread_join的函数中:

int main(void)
{
pthread_t tid;
void * tret; pthread_join(tid, &tret);
}

最新文章

  1. SQL Server 2014新特性——事务持久性控制
  2. c 数据拼接
  3. js的变量使用<bean><list:write>赋值时需加' '
  4. 安装绿色版mysql
  5. linux 大并发下 内核优化
  6. CF-gym-100523-C(水题)
  7. SPBF(队列优化的Bellman-Foord)
  8. hitTest:withEvent:方法(此方法可实现点击穿透、点击下层视图功能)
  9. Hdu 4539 【状态DP】.cpp
  10. Redmine管理项目1-自定义属性
  11. [HDU] 2094 产生冠军(拓扑排序+map)
  12. 关于java多线程关键字volatile的理解
  13. python之路--BOM和DOM
  14. Web项目替换jar包中的文件的方法
  15. ubuntu安装使用ffmpeg
  16. 13机器学习实战之PCA(1)
  17. JVM总结-invokedynamic
  18. Java - 延迟初始化
  19. C++ string 字符串查找匹配
  20. 简单创建一个完整的struts2框架小程序

热门文章

  1. SOLID 设计原则
  2. android Intent介绍
  3. MicroStation VBA 操作提示
  4. play for scala 在模板中格式化Date
  5. SQL中case when then用法
  6. poj 2823 Sliding Window (单调队列入门)
  7. javascript正则表达式简介
  8. Excel加载期间出现问题 解决方案
  9. SqlServer排序(null值,和非空值排列顺序)
  10. Vim/gvim容易忘记的快捷键
  11. 存储单位的换算(KB, MB, GB)
  12. [转]高级SQL注入:混淆和绕过
  13. 软件分享--EditPlus
  14. renren-security旧版本 分模块 的模块之间关系浅析
  15. 洛谷P3516 PRZ-Shift [POI2011] 构造
  16. 腾讯云 COS 对象存储使用
  17. [整]Android SlidingMenu Demo 环境搭建
  18. Shell 启动java程序
  19. 用 AutoHotKey 随时记录所想
  20. [转载]for循环的执行顺序