C++返回数组的两种方式
原创
©著作权归作者所有:来自51CTO博客作者星辰大数据的原创作品,请联系作者获取转载授权,否则将追究法律责任
实现代码
#include <iostream>
using namespace std;
int** f(){
int** dot;
dot=(int**)new int*[5];
for(int i=0;i<5;i++){
*(dot+i)=new int[5];
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
dot[i][j]=i+j;
}
}
return dot;
}
int(*f1())[5]{
int(*p)[5] = new int[5][5];
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
p[i][j] = i+j;
}
}
return p;
}
int main(int argc, char** argv)
{
int **dot;
dot=f();
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cout<<dot[i][j]<<" ";
}cout<<endl;
}
delete dot;
cout<<"--------------"<<endl;
int (*p)[5];
p = f1();
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cout<<p[i][j]<<" ";
}
cout<<endl;
}
delete p;
return 0;
}
运行结果