3 回答
墨色风雨
TA贡献1853条经验 获得超6个赞
在C99中,可以在传递数组之前提供数组的尺寸:
void array_function(int m, int n, float a[m][n])
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
a[i][j] = 0.0;
}
void another_function(void)
{
float a1[10][20];
float a2[15][15];
array_function(10, 20, a1);
array_function(15, 15, a2);
}
江户川乱折腾
TA贡献1851条经验 获得超5个赞
当我们将2D数组作为参数传递给函数时,可以选择指定最左边的尺寸。此处的关键是何时对函数进行的任何更改都反映在调用函数中,因为当我们将2D数组作为参数传递时意味着实际上是函数接收指向一维数组的指针。大小就是列数。例子
1- int funct(int (*a) [4]);
这里的a是指向整数数组的指针。我们也可以这样简单地通过
2 void funct(int a[][4]);
正如我之前说过的,最左侧总是可选的。在第一个示例中,a的大小将为4,因为它通常只是指针。* a的大小为16,因为我们有4列,每列有4个字节,所以4 * 4 = 16个字节。
但是最可取的方式是始终使用动态内存分配。
我希望你能明白
- 3 回答
- 0 关注
- 493 浏览
添加回答
举报
0/150
提交
取消