C++返回数组的两种方式

实现代码

#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;
    }
    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;
    }
    return 0;
}

运行结果

发布了142 篇原创文章 · 获赞 41 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq262593421/article/details/105043248