gpt4 book ai didi

c - 在c中将2D int数组从一个函数传递到另一个函数

转载 作者:行者123 更新时间:2023-12-02 20:54:55 25 4
gpt4 key购买 nike

例如,我有两个函数:第一个函数从 main() 获取高度和宽度并读取 2D int 数组

int read_price (int height, int width) { 
int i, j;
int array[height][width];

printf("Enter your values:\n");

for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
scanf("%d", &array[i][j]);
}
}
}

第二个函数从第一个函数获取值并打印它。

void print_array () {
int i, j;
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
}

还有 - 问题!我应该如何在第一个函数中调用第二个函数(使用哪些参数)?我应该在第二个函数名称的括号内写哪些参数。

我尝试以这种(和其他)方式进行调用,但出现错误。

print_array (array[height][width]);

最佳答案

在 C99 中,您可以使用可变长度的数组。在您的情况下,函数 print_array 的定义如下所示:

void print_array (int height, int width, int array[height][width]) {
int i, j;
for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
printf("%d ", array[i][j]);
}
printf("\n");
}
}

你可以将其称为:

print_array(height, width, array);

因为在 C 中,您不发送数组,只是发送指针,所以前面的定义等于您发送指针(指向 width 整数数组)时的定义,您可以将其定义为:

void print_array (int height, int width, int (*array)[width]) {
...
}

关于c - 在c中将2D int数组从一个函数传递到另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com