nit*_*tzs 1 c multidimensional-array
我试图将可变大小的2D数组传递给函数来打印它.我知道当一个固定大小的数组时它是如何完成的.但是如何使用可变大小的数组做到这一点?这里有一些代码可以让你知道我想要做什么:
void print_grid(char (*g)[9], int size) // the array subscript (9 here) be variable
{
int i, j;
for (i=0; i<size; i++)
{
for (j=0; j<size; j++)
printf("%c ", g[i][j]);
printf("\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我将使用以下代码调用此函数:
char a[3][3], b[9][9];
// assign a, b
print_grid(a, 3);
print_grid(b, 9);
Run Code Online (Sandbox Code Playgroud)
如果没有在print_grid()中分配任何动态内存,有没有办法做到这一点?
void print_grid(int rows, int cols, char g[][cols]) { ... }
Run Code Online (Sandbox Code Playgroud)