函数返回指针|函数返回地址
来源:互联网 发布:中国光伏产业联盟数据 编辑:程序博客网 时间:2024/06/05 00:48
函数返回局部自动变量的地址是严重的错误。
但是我们可以返回动态分配的内存的地址,因为使用操作符new分配的动态内存一直存在,
直到被delete销毁或者程序结束,不受函数作用域的影响。
#include <iostream>using namespace std;double* treble(double);char* fun1();char* fun2();int main(){double* ptr(nullptr);ptr = treble(5.0);cout << "Result = " << *ptr << endl;delete ptr;//释放为result动态分配的内存ptr = 0;cout << "_fun1() = " << fun1() << endl;cout << "_fun2() = " << fun2() << endl;system("pause");return 0;}double* treble(double data){double* result = new double(0.0);//double* result(nullptr); //错误double num = 4;result = #*result = 3.0 * data;return result;}char* fun1(){char* str = "12345";cout << " fun1() = " << str << endl;return str;}char* fun2(){char str[] = "12345";cout << " fun2() = " << str << endl;return str;}函数fun1()中常量字符串"12345"的地址赋给str,因此str的值是字符串的地址。
而str是局部变量,函数返回值时,变量str被破坏,但是常量字符串并没有被破坏,
因此根据返回的地址可以找到字符串。
函数fun2()中常量字符串"12345"赋给了数组str,str的值是数组str的地址。
而str是局部变量,函数返回值时,变量str被破坏,因此根据返回的地址得不到结果。
0 0
- 函数返回指针|函数返回地址
- 定义返回函数指针(地址)的函数
- 返回函数指针。
- 关于函数返回指针
- 返回指针的函数
- 返回指针的函数
- 函数返回 局部指针
- c函数返回指针
- 返回函数的指针
- C函数返回指针
- 返回指针的函数
- 函数返回指针
- 返回指针的函数
- 函数返回指针分析
- 返回指针的函数
- 函数返回指针
- 返回指针的函数
- c函数返回指针
- 鸡啄米vc++2010系列2(项目文件分析)
- MAC JDK版本切换
- zookeeper报错解决
- JSTL 核心标签库 使用
- 鸡啄米vc++2010系列3(MFC应用程序框架分析)
- 函数返回指针|函数返回地址
- 如何在PB中制作特殊形状数据窗口或按钮介绍
- Android 对话框(Dialog)大全
- test
- Spark分布式计算和RDD模型研究
- 【Android开发】View的平移、缩放、旋转以及位置、坐标系
- 高通Qualcomm vuforia SDK4.0相关
- Singleton设计模式(C++)
- spring四种依赖注入方式