求二维数组做函数形参
有如下代码:
#define GET_ARRAY_LEN(array,len,colcounter) {len = (sizeof(array) / sizeof(array[0][0])/colcounter);}
int a[][3]={
{1,2,3},
{4,5,6}
};
voidlength(int b[][3])
{
int b_len;
printf("*******b[0][2]=%d\n",b[0][2]);
printf("sizeof(b)=%d\n",sizeof(b));
GET_ARRAY_LEN(b,b_len,3);
printf("******b_len=%d\n",b_len);
}
int main(int argc, char *argv[])
{
printf("sizeof(a)=%d\n",sizeof(a));
int a_len=0;
GET_ARRAY_LEN(a,hz_len,3);
printf("hz_len=%d\n",hz_len);
length(a);
system("PAUSE");
return 0;
}
结果发现b_len=0 ,这让我不可思议,但打印b[0][2]时,值确实为3 。求大神来指点指点我?
[解决办法]