实现代码

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

运行结果

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