快速排序这里二维数组应该如何传递?

目的是为了随机生成一个n×n维的矩阵,元素大小为0至n随机生成,然后用不同方法进行排序,验证不同排序方法的优劣性

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define max 10
void charu(int a[][1000], int n)
{
for(int i= 0; i<n; i++)
{
for(int k= 1; k<n; k++)
{
if(a[i][k] < a[i][k-1])
{
int j= k-1;
int x = a[i][k];
while(j>-1 && x < a[i][j])
{
a[i][j+1] = a[i][j];
j--;
}
a[i][j+1] = x;
}
}
}
}
int Split(int a[][max],int low,int high)
{
int o;
for(o=0;o<max;o++)
{
int i=low,temp;
if(a[o][low]< a[o][(low+high)/2])
{
if(a[o][low]<a[o][high])
{
if(a[o][(low+high)/2]<a[o][high])
{
temp= a[o][(low+high)/2];
a[o][(low+high)/2]=a[o][low];
a[o][low]=temp;
}
else
{
temp=a[o][high];
a[o][high]=a[o][low];
a[o][low]=temp;
}
}
}
else
{
if(a[o][(low+high)/2]<a[o][high])
{
if(a[o][low]>a[o][high])
{
temp=a[o][high];
a[o][high]=a[o][low];
a[o][low]=temp;
}
}
else
{
temp= a[o][(low+high)/2];
a[o][(low+high)/2]=a[o][low];
a[o][low]=temp;
}
}
for(int j=low+1;j<=high;j++)
{
if(a[o][j]<a[o][low])
{
i++;
if(i!=j)
{
temp=a[o][i];
a[o][i]=a[o][j];
a[o][j]=temp;
}
}
}
temp=a[o][i];
a[o][i]=a[o][low];
a[o][low]=temp;
return i;
}
}
void kuaisu(int a[][max],int low,int high)
{
for(int i=0;i<max;i++)
{
if(low<high)
{
int w;
w=Split(a[i][max],low,high);
kuaisu(a[i][max],low,w-1);
kuaisu(a[i][max],w+1,high);

}
}
}
int main ()
{
int k[max][max];
int i,j,c;
srand((unsigned)time(NULL));
for(i=0;i<max;i++)
{
for(j=0;j<max;j++)
{
c=rand()%max;
k[i][j]=c;
}
}
charu(k,max);
kuaisu(k,0,max-1);
return 0;
}

报错为[Error] invalid conversion from 'int' to 'int (*)[10]' [-fpermissive]
我想要达到的结果

https://blog.csdn.net/pmxcoding/article/details/105449566