根据这个https://stackoverflow.com/a/3912959/1814023我们可以声明一个接受二维数组的函数
void func(int array[ROWS][COLS]).
根据这个,http://c-faq.com/aryptr/pass2dary.html他们说“由于被调用的函数没有为数组分配空间,它不需要知道整体大小,所以行数" _
我试过这个并且它有效......请注意,我已经更改了列的大小。
#include <stdio.h>
#define ROWS 4
#define COLS 5
void func1(int myArray[][25])
{
int i, j;
for (i=0; i<ROWS; i++)
{
for (j=0; j<COLS; j++)
{
myArray[i][j] = i*j;
printf("%d\t",myArray[i][j]);
}
printf("\n");
}
}
int main(void)
{
int x[ROWS][COLS] = {0};
func1(x);
getch();
return 0;
}
我的问题是,为什么在 CFAQ 链接(http://c-faq.com/aryptr/pass2dary.html)中他们说“ The width of the array is still important
”?即使我提供了错误的列大小。有人可以解释一下吗?