指针变量向函数中传递的陷阱及解决方法
2013-11-23 16:56
281 查看
假设有一个指针变量ptr,另有一个函数Func,形参为指针。现在要将该指针变量ptr传递给函数Func,欲修改ptr的值,怎么做呢?先看以下代码:
执行结果:
可见,指针ptr的值并未改变,仍然为NULL。出现这样的结果,原因是:ptr是局部变量,当传递给函数test()时,函数不能真正使用ptr,用的只是ptr的一个备份,ptr的值不变。这是一个极易出错的陷阱。
解决方法目前有2个:
1、通过return返回地址。
2、通过二级指针。
上述2种方法的执行结果:
执行结果:
可见,指针ptr的值并未改变,仍然为NULL。出现这样的结果,原因是:ptr是局部变量,当传递给函数test()时,函数不能真正使用ptr,用的只是ptr的一个备份,ptr的值不变。这是一个极易出错的陷阱。
解决方法目前有2个:
1、通过return返回地址。
2、通过二级指针。
上述2种方法的执行结果:
相关文章推荐
- POI3.8读取WORD(简洁实例)
- 解析javascript变量
- struts2 相关知识
- Leetcode: Length of Last word
- 深度理解链式前向星
- 用stackedit保存笔记
- 【Linux_Fedora_应用系列】_5_如何安装XZ Utils 解压缩工具以及利用 xz工具来解压缩.xz文件
- 顺时针打印矩阵
- POI 2000 ------Stripes
- iPhone界面跳转
- LSA学习笔记
- 图的邻接矩阵和邻接表表示法
- 二叉树解析实现逆波兰公式算法
- CODE 133: Single Number
- jquery下error报错详解
- restlet中如何获取post方式提交的表单值
- Brief Intro to Blocks 4:Memory Management with Blocks
- android 实现静默安装、卸载
- 《Head First设计模式》学习笔记1
- java序列化与反序列化