C++中多维数组做参数,第二维或者更高维的维数不能省略。例如,可以
但是不可以
void Func(int array[3][10]);
void Func(int array[][10]);
但是不可以
void Func(int array[][]);
这是因为,在内存中,多维数组的存放(一般是按行存放)并不区分行和列,因此,如果不知道第二维或者更高维编译器就不知道有多少行多少列,就没法寻址。
如果不想指定第二维的维数,可以用指针的指针做参数。
void Func(int ** count, int m, int n) //m,n分别是第一维和第二维的维数
但是,在函数内使用array时,不能用数组方式寻址。
for(int i=0;i<dn;i++)
{
for(int j=0;j<wn;j++)
cout<<*((int*)count+i*wn+j)<<" ";
cout<<endl;
}