二维数组做参数 却在函数中用了new怎么处理

二维数组做参数 却在函数中用了new怎么办?

void   kuozhang(int   **   ride)
{
      ride=new   int   *[4];
      for(int   i=0;i <4;i++)
            {
                    ride[i]=new   int[4];
            }
      ride[2][2]=68;
}

void   main
{
      int   **   du;
      kuozhang(du);
      ASSERT(ride[2][2]==68)//无法通过怎么办?

}

------解决方案--------------------
void kuozhang(int ** &ride)
------解决方案--------------------
void kuozhang(int *** ride)
{
*ride=new int *[4];
for(int i=0;i <4;i++)
{
(*ride)[i]=new int[4];
}
(*ride)[2][2]=68;
}

void main
{
int ** du;
kuozhang(&du);
ASSERT(du[2][2]==68)//无法通过怎么办?

}