以下转自:http://blog.csdn.net/lijiayu2015/article/details/52821562

C++中函数是不能直接返回一个数组的,但是数组其实就是指针,所以可以让函数返回指针来实现。

不能直接返回函数中定义的数组,会被释放掉

float* add(a[3],b[3])
{
float sum[4];
sum[0]=a[0]+b[0];
sum[1]=a[1]+b[1];
sum[2]=a[2]+b[2];
return sum;
}//main()中调用使用
int main()
{float A[3] = { 1, 1, 1};float B[3] = { 1, 2,3};float *M = add(A, B);cout << M[0] << " " << M[1] << "  "<<M[2]<<endl;cout << M[0] << " " << M[1] << "  " << M[2] << endl;system("pause");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20


第一次输出的结果正确,第二次输出结果不对,因为指针函数返回的指针被释放了。

正确方法1:函数内使用new动态分配内存

float* add(float a[3], float b[3])
{float* sum=new float[3];//替换sum[0] = a[0] + b[0];sum[1] = a[1] + b[1];sum[2] = a[2] + b[2];return sum;
}int main()
{float A[3] = { 1, 1, 1};float B[3] = { 1, 2,3};float *M = add(A, B);cout << M[0] << " " << M[1] << "  "<<M[2]<<endl;cout << M[0] << " " << M[1] << "  " << M[2] << endl;delete[] M;//增加system("pause");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

方法2:在函数外定义数组,通过形参传入函数,在函数内修改数组

void add(float a[3], float b[3],float sum[3])
{sum[0] = a[0] + b[0];sum[1] = a[1] + b[1];sum[2] = a[2] + b[2];
}int main()
{float A[3] = { 1, 1, 1};float B[3] = { 1, 2,3};float M[3];add(A, B, M);cout << M[0] << " " << M[1] << "  "<<M[2]<<endl;cout << M[0] << " " << M[1] << "  " << M[2] << endl;system("pause");return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

以上转自:http://blog.csdn.net/lijiayu2015/article/details/52821562

踩了坑之后,正确用法:

调用:

finish!

c++ 函数返回数组相关推荐

  1. linux shell 字符串 数组,bash shell函数返回数组字符串

    #!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...

  2. 【转】C 从函数返回数组

    http://www.runoob.com/cprogramming/c-return-arrays-from-function.html C 从函数返回数组 C 数组 C 语言不允许返回一个完整的数 ...

  3. c语言怎么返回数组,c++从函数返回数组的方法代码

    c++如何从函数返回数组? C++ 从函数返回数组 C++ 不允许返回一个完整的数组作为函数的参数.但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针. 如果您想要从函数返回一个一维数组,您 ...

  4. matlab二重指针,VC++中函数返回数组指针或者带指针的结构体的编译方式是否可取? - 程序语言 - 小木虫 - 学术 科研 互动社区...

    libralibra 构造函数+析构函数应该是比较正规的做法吧, 你的结构体/类被提早释放的问题,是不是那个结构体是局部变量,当超出作用域时对象被销毁,如果存在析构函数,会被默认调用, 如果你返回结构 ...

  5. 关于C语言函数返回数组的问题【转】

    (转自:https://blog.csdn.net/earbao/article/details/53401800) 关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实 ...

  6. c语言在函数中返回数组,关于C语言函数返回数组的问题

    关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意: 1.该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放. 可以是全局 ...

  7. c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)

    C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...

  8. vb.net函数返回数组

    今天写了一个程序需要函数返回数组,看了别的网友的程序发现有bug,特此记录一下 返回函数写法 Private Function Fun_Fp32ToByte(ByVal fp32 As Single) ...

  9. c 语言 函数返回数组_如何在C ++函数中返回数组

    c 语言 函数返回数组 介绍 (Introduction) In this tutorial, we are going to understand how we can return an arra ...

  10. C++ 函数返回数组处理方法

    最近在通过函数返回数组时踩到了一些坑,在此记录一下. 首先C++函数的返回类型没有"数组"这一结构,因此一般情况下我们会采用指针去接受数组的首地址来进行返回.另外由于函数体内定义的 ...

最新文章

  1. Spring Boot 打包不同环境配置与 Shell 脚本部署
  2. 成本砍砍砍!不用数据也能用 BERT 做对比学习?
  3. PL/SQL Developer 和 instantclient客户端快速安装配置(图文)
  4. linux shell if 参数
  5. CentOS下Storm 1.0.0集群安装详解
  6. java信号灯_java 多线程-信号灯法
  7. 工作66:动态生成二维码
  8. 2008中国软件企业出口(外包)20强
  9. jquery 替换括号里面内容_【推荐】前端框架 Bootstrap 5.0 alpha 发布,不再依赖 jQuery...
  10. Cas单点登录的服务器端和客户端的配置
  11. laravel 与 tp5 获取控制器 方法名
  12. 你还在手写 CRUD?试试 MybatisGenerator,再也不用加班了!
  13. C#利用word2007插件实现word转pdf
  14. 更改Edge浏览器缓存位置
  15. windows配置pip加速器
  16. 小白学python需要多久_自学Python要多久才能学会
  17. 速写人物的脸型怎么画?如何画好人物脸型?
  18. Python绘制太阳花(初学者)
  19. 【歪门邪道】想要敲代码爽,桌面一定要酷炫
  20. 利用window.location实现下载文档

热门文章

  1. UPC新生训练赛32场
  2. 【必看】HTML+CSS去掉img图片底部的空白的3种通用方法
  3. js两种移除事件的方法
  4. 【openEuler系列】配置本地yum源
  5. 福建师范大学2022年2月课程考试《心理学》作业考核试题
  6. 去雾论文Single Image Defogging Method Based on Image Patch Decomposition and Multi-Exposure Image Fusion
  7. 从个人英雄到群体英雄
  8. stc12c5a60s2驱动TEA5767收音机模块硬件调试总结
  9. vue项目-前端请求接口报405 not allowed
  10. OpenCV—python 颜色直方图与直方图均衡化