C++中如何使函数返回数组
2016-05-18 16:17
381 查看
C++中如何使函数返回数组?以前使用java返回数组这些类型都比较方便,用c++的时候突然发现c++不支持返回数组,我就找了下应该怎么实现这这种返回
在C++中,数组不是一种类型,因此不能被直接返回。一般有两种方法来返回一个数组。
返回一个指向数组的指针
返回一个结构的形式。这种形式相对较安全,可以避免忘记释放指针而造成内存泄露,也可以避免访问悬挂指针造成的错误。但缺点是由于结构是先拷贝再返回,因此如果结构较大时,会影响效率和占用较大内存。
在C++中,数组不是一种类型,因此不能被直接返回。一般有两种方法来返回一个数组。
返回一个指向数组的指针
#include<iostream> using namespace std; int* Array() { int *a; a=new int [10]; for(int i=0;i<10;i++) { a[i]=i+1; cout<<a[i]<<" "; } cout<<endl; return a; } void main() { int *b; b=Array(); for(int i=0;i<10;i++) cout<<b[i]<<" "; cout<<endl; }
返回一个结构的形式。这种形式相对较安全,可以避免忘记释放指针而造成内存泄露,也可以避免访问悬挂指针造成的错误。但缺点是由于结构是先拷贝再返回,因此如果结构较大时,会影响效率和占用较大内存。
#include<iostream> using namespace std; class tag { public: int a[10]; }X; class tag Array() { for(int i=0;i<10;i++) { X.a[i]=i+1; cout<<X.a[i]<<" "; } cout<<endl; return X; } void main() { class tag Y=Array(); for(int i=0;i<10;i++) { cout<<Y.a[i]<<" "; } cout<<endl; }
相关文章推荐
- C++ 温习笔记(2) - extern,预处理命令#pragma,static
- c++友元
- 堆栈的实现(c语言)
- C++中的4种类型转换方式
- C++学习笔记(一)
- 探究Java和C++中的关键字:final vs. const
- C++实现模拟定时器
- JavaCC -- 生成C++代码
- C++类中的静态成员变量与静态成员函数的使用
- 模拟c++容器vector写的动态数组
- 2016第七届蓝桥杯省赛C组试题及部分答案
- 图文详解OpenTLD C++版平台的搭建
- C语言一闪而过
- 经典算法<一>迷宫问题 4.多条路径 求路径条数求解 C++实现
- 总结常出现的求sizeof值的情况
- C语言中内存分配
- 初学C和C++每日笔记 求个大神指点指路
- c++学习进阶方向
- 关于C++命名空间
- <dirent.h> in Visual C++