Возврат многомерного массива в C++

Имеются две функции - одна определяет размеры массива, друга - его содержимое. Я хочу передать полученный результат в другую функцию, но не могу понять, как это сделать.

int borders(int x[2]) {
    int n, m;
    cin>>n;
    cin>>m;

    if (n > 10 | m > 10) {
        cout<<"n and m must be <= 10"<<endl;
        exit(1);
    }
    else
        x[0] = n;
    x[1] = m;
    return *x;
}

int input(int x[2]) {
    int sum = 0, n, m;
    borders(x);
    cout<<x[0]<<endl<<x[1]<<endl;
    n = x[0];
    m = x[1];
    int a[n][m];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin>>a[i][j];
            cout << a[i][j] << "\n";
        }
    }
    return a; //error!
}

Ответы (1 шт):

Автор решения: TheRyuTeam
int** input(int x[2])

И

a = new int*[n];
for (int i = 0; i < n; ++i)
    a[i] = new int[m];

А ещё лучше просто использовать std:: vector

→ Ссылка