二维数组与函数调用的问题

#include
using namespace std;
void output(int **&arr,int n);
void create(int **&arr, int n);
int main()
{
    int **arr_1 =NULL, n;
    cout<<"输入矩阵的阶:";
    cin>>n;
    cout<<"生成矩阵:"<<endl;
    create(arr_1,n);
    output(arr_1,n);

    return 0;
}
void create(int **&arr, int n) //创建二维数组
{
    *arr= new int[n];
    for(int i=0;i<n;i++)
    {
        arr[i]= new int[n];
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(i<=j)
            {arr[i][j]=1;}
            else
            {arr[i][j]=i-j+1;}
        }
    }
}
void output(int **&arr,int n) //输出二维数组
{
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            cout<<arr[i][j]<<"  ";
        }
        cout<<endl;
    }
}

为什么输出不了二维数组的元素?