指针作为函数参数传递时需要注意的问题
来源:互联网 发布:icm20602中文数据手册 编辑:程序博客网 时间:2024/05/16 06:07
#include<stdio.h>#include<stdlib.h>#include<string.h>void GetMemory(char *p,int num){p=(char*)malloc(num);}int main(){char *str=NULL;GetMemory(str,100);strcpy(str,"hello");printf(str); return 0;}
上述程序能正常运行吗?
再看下面的程序
#include<stdio.h>#include<stdlib.h>#include<string.h>void GetMemory(char **p,int num){*p=(char*)malloc(num);}int main(){char *str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str); return 0;}
结果是第一个程序不能正常运行,而第二个程序能够打印输出“hello”。
在两个程序中都想通过GetMemory函数改变str指针变量里的地址,第一个程序直接用了str指针变量作为函数参数,第二个使用了指向str的指针作为函数参数。
第二个程序能正常运行的原因是:
在用指针作为参数传递给函数时,只能保留指针变量指向的变量的值,而不能保留指针变量本身所做的修改。
在需要修改指针变量本身的时候,需要使用指向指针的指针作为参数,这也是传值与传地址的差别所在。
0 0
- 指针作为函数参数传递时需要注意的问题
- 实例解析使用指针作为函数参数传递需要注意的问题
- C++指针作为函数的参数进行传递时注意的问题
- 指针作为函数参数传递的问题
- 指针变量作为函数参数使用时注意的问题!
- 函数传递指针参数时注意的问题
- C语言一级指针、二级指针、数组作为参数传递需要注意的若干问题
- 指针作为函数的参数传递的问题
- 指针作为函数的参数传递的问题
- 指针作为函数的参数传递的问题
- 指针作为函数的参数传递的问题
- c++之指针作为函数参数传递的问题
- c++之指针作为函数参数传递的问题
- c++之指针作为函数参数传递的问题
- c++之指针作为函数参数传递的问题
- c++指针作为函数参数传递的问题
- c++之指针作为函数参数传递的问题
- c++之指针作为函数参数传递的问题
- spring MVC配置详解
- Python中执行系统命令常见方法有两种:
- Linux命令yum
- LeetCode 62 Unique Paths II
- spring3 集成tiles3
- 指针作为函数参数传递时需要注意的问题
- js日期时间函数
- airMAX 基站远程管理_莱桥通信张景
- EBS Form开发中弹性域的定义语法
- IAP-应用内购买(部分)
- hdu4884TIANKENG’s rice shop(模拟)
- 在打印时屏蔽系统弹出对话框中的按钮
- sql 临时表的使用先删除的语句
- Dynamics CRM 2013 subgrid刷新后刷新主表单