二维数组渗梁型传递给函数的时候,有两种方式,一种是a[][6],一种是(*a)[6],这里的6是不能省略的,不然编译器不知道丛猜如何通过加多少来偏移渣罩这个指向数组的指针。
把函数头改成:void gn2(char b[],int length,char a[][6]) 就行了
#include
void gn1(char a[],int length,char b[])
{
int i,k=0;
for(i=0;i<兆悄6;i++)
{
int j=0x80;
for(;j;j>>=1)
if(j&a[i])
b[k++]=1;
else
b[k++]=0;
}
}//;
void gn2(char b[],int length,char a[][8])//
{
int i,j,x=0;
for(i=0;i<6;i++)//
{
for(j=0;j<8;j++)//
{
a[i][j]=b[x];
x++;
}
}
}
int main()
{
char a_1[6],b_1[48];
char a_2[6][8],i,j;//
int i_1;
for(i_1=0;i_1<6;i_1++)
scanf("%c,",&a_1[i_1]);
gn1(a_1,6,b_1);//由gn1可以得到 b_1[48] 存储48个二进制数字————b_1[48]
gn2(b_1,48,a_2);
族歼渣 for(i=0;i<6;++i)
{
改慧 for(j=0;j<8;++j)
{
printf("%d",(int)a_2[i][j]);
}
printf("\n");
}
return 0;
}