常规方法传参要知道一维大小~
程序代码:
#include<stdio.h>
#define SIZE(a) sizeof (a)/sizeof(*a)
void fun(int* ,size_t ,size_t );
int main( void )
{
int a[2][2]=
{
{1,2},
{3,4}
};
int b[3][4]=
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
fun((int* )a,SIZE(a),SIZE(*a));
fun((int* )b,SIZE(b),SIZE(*b));
return 0;
}
void fun(int* a,size_t i,size_t j)
{
size_t k=0;
size_t t=j+1;
for (;k!=i*t;++k)
printf((k%t)^j?"%-4d":"\n",a[j*(k/t)+k%t]);
}
还有另一种方法就是用动态数组处理(复杂点的就用平衡树来模拟多维数组——比较复杂有时效率较低不过却可以节省空间处理灵活)
~
[此贴子已经被作者于2017-11-21 21:26编辑过]