函数传值还是传指的问题案例
来源:互联网 发布:ntfs for mac反激活 编辑:程序博客网 时间:2024/06/16 07:05
函数传值还是传指的问题案例
- 要想改变它本身的值, 必须传入它本身的指针
向函数传参数时,一般而言,传入非const修饰的指针时,就表示,要在函数中修改这个指针的指向内存中的数据,如果是传值,那么无论在函数内部怎么修改这个值,也不会影响到传过来的值,因为传值可以看作只是内存拷贝。说起来有点基础的都懂,但是
请问下面的写法有什么问题
void GetVersion(char * pStr){ pStr = (char *)malloc(10); strcpy(pStr,"V1.1.1");}int main(void){ char * ver = NULL; GetVersion(ver); printf("ver = %s\n",ver); free(ver);}
问题是:
- free的位置不对,会报错。
- 不能实现GetVersion函数的想要的目的。
类似这样的问题是一个新手最容易犯的错误,程序中妄图通过函数
GetVersion 给指针 ver 分配空间,但这种方法根本没有什么作用,原因就是–这是
传值,不是传指针。你或许会和我争论,我分明传的时指针啊?再仔细看,其
实,==你传的是指针其实是在传值==。
正确的应该这么写
void GetVersion(char ** pStr){ *pStr = (char *)malloc(20); strcpy(*pStr,"V1.0.1");}int main(void){ char * ver = NULL; GetVersion(&ver); printf("ver = %s\n",ver); free(ver);}
0 0
- 函数传值还是传指的问题案例
- java函数传值还是传引用的问题
- 还是指针和函数传参的问题
- 关于java函数传值还是传引用的经典问题
- python函数的参数传递问题---传值还是传引用?
- Java中函数参数是值还是对象的问题
- Python的函数参数传递:传值还是传引用
- javascript - 函数里传的是值还是引用
- Java中最困绕人心的问题--传值还是传引用?
- java 传值还是传引用的问题
- java方法传值还是传引用的问题
- java传值还是传引用的问题详解
- PHP中对象传值还是传引用的问题
- java传引用还是传值的问题
- Java传值还是传引用问题
- Java的函数到底是传值?传引用?还是……
- [AHK]函数的参数是传值,还是传引用?
- 还是ASP或.NET的Round函数问题
- java中请给出UDP的DatagramSocket通信的例子?
- Markdown编辑器一览大全,总有一款适合你
- SeleniumWebDriverAPI-1
- JAVA面对对象
- angular-component组件开发实际应用
- 函数传值还是传指的问题案例
- 三范式
- 803E
- 解压文件时处理前13个字节
- Maven
- 3.1 Linux中的文件IO (1、2节)
- VI常用命令
- 【Bzoj1029】建筑抢修
- nginx 惊群处理及原子锁技术