关于指针的值传递错误
来源:互联网 发布:gap淘宝旗舰店 编辑:程序博客网 时间:2024/04/29 23:08
分析一段代码。这是一个典型的指针的值传递错误。
void GetMemory(char *p,int num){p = (char*)malloc(sizeof(char)*num);}void Test(void){char *str = NULL;GetMemory(str,100);strcpy(str,"hello");}
Test()运行过程是这样的:
1.声明一个指针str,它指向NULL。
2.开始运行GetMemory函数。首先做str和num的复本,实际上为_str,_num,它们的值与str,num相同,即_str=str;_num=num。子函数中对参数的操作实际上都是对其复本进行操作。然后malloc返回的指针值赋给了_str,而str的值不变。函数结束时,_str,_num被销毁。
3.执行strcpy时,str仍然指向NULL,运行出错。
说明:指针也是普通数据,要分清楚它的值,地址,以及名称。
- 关于指针的值传递错误
- 关于指针、引用、值传递的学习
- 关于“指针的指针”的认识(值传递、指针传递区分)
- 关于“指针的指针”的认识(值传递、指针传递区分)
- 关于 指针的引用和指针值传递
- 关于函数的指针传递
- [错误记录]关于指针传递获得数据使用错误问题....
- 关于指针传递和指针的引用传递
- Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值
- Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值
- 关于值传递指针传递和引用传递
- 关于指针错误的问题
- 关于指针参数的内存传递副本
- 关于this指针的传递问题总结
- C++,关于指针形参”值传递VS地址传递“的问题
- 指针的值传递和地址传递
- 关于c指针传值的隐蔽错误
- 参数的值传递,指针传递和引用传递
- GPRS常识整理
- 计算机视觉CV 圈子 zz
- 隐式类类型转换
- Python和Shell简单对照
- 验证日期的正则表达式比较全面地验证
- 关于指针的值传递错误
- Struts2 开发流程
- 快速排序
- 返回数据到前一个Activity---startActivityForResult方法
- 第三十六节 java学习——Graphics类
- (转载)OpenCV_提取图片中任意形状的区域
- 高等教育
- 关于python模块循环导入(circular imports)/相对导入(Relative Imports)/绝对导入(Absolute Imports)的官方资料
- 堆和栈的区别 (转贴)