c语言中的结构体二维数组做参数问题

#include <stdio.h>
struct std
{
char no[7];
};

void shuchu(struct std cansu[][])
{
scanf("%s",aa[1][1].no);
printf("%s",aa[1][1].no);
}

void main()
{
struct std aa[5][5];
shuchu(aa);
}
我是照一维数组代入参数那样,来改成二维数组的,可是就不行了。
如何修改 才能执行函数shuchu() 。
跪求有人能帮我解决问题,感谢万分。
#include <stdio.h>
struct std
{
char no[7];
};

void shuchu(struct std cansu[])
{
scanf("%s",aa[1].no);
printf("%s",aa[1].no);
}

void main()
{
struct std aa[5];
shuchu(aa);
}
如果是这样的一维数组就可以了。 可是二维不行,1楼的解释的不够清楚,能给个代码吗? 谢谢了

1、如果在函数外定义的结构数组,又要在一个函数中进行输入、输出,通常情况下,其参数传递类型需要传址,即
void shuchu(struct std **cansu);
void shuchu(struct std *cansu[]);

这样调用改为 shuchu(&aa);

对函数内的相应操作改为指针操作即可。

2、通常情况下,对于一个系统设计而言,其输入输出是分开的,也即在2个函数中,从系统分析而言,建议分开。当然,就测试而言,是可以的。

3、如果一定要采用2维数组做参数,按照对于多维数组做参数的要求,前几维一定要给出确切的数值

如2维: void shuchu(struct std cansu[5][]) 就可以了。
温馨提示:答案为网友推荐,仅供参考
相似回答