我有一个以 1-D数组为参数的函数。我想传递给此函数的值存在于二维数组的特定行中。如何将该行作为一维数组传递给函数?
答案 0 :(得分:1)
您可以使用以下方法之一将2d数组nth
行(array[x][y]
)传递给函数(func
)。确保将数组(size
)的 nth row
传递给func
。
func(array[n], y);
func(&array[n][0], y);
func(*(array+n), y);
以上表达式中的每一个都评估为相同的值(即nth row
中第一个元素的地址)
答案 1 :(得分:0)
#include <stdio.h>
void foo(int *x, size_t n) {
printf("%d\n", x[0]); /* marks[10][0] */
if (n > 10) printf("%d\n", x[10]); /* marks[10][10] */
}
int main(void) {
int marks[42][42] = {0};
foo(marks[10], sizeof marks[10] / sizeof marks[10][0]);
}