在C中通过引用传递多维数组

一前一后
#include <stdio.h>

void f(int *app[][20]) {
    int i, j;
    for (i =0; i< 20; i++){
        for (j=0; j<20; j++){
            *app[i][j] = i;
        }
    }
}

int main() {
  int app[20][20];
  int i, j;
  f(&app);
    for (i =0; i< 20; i++){
        for (j=0; j<20; j++){
            printf("i %d, j%d  val= %d\n", i, j, app[i][j]);
        }
    }

  return 0;
}

我到底在做什么错?我没有收到任何错误,但存在细分错误,我也不知道为什么。

te.c:15:5: warning: passing argument 1 of ‘f’ from incompatible pointer type
   f(&app);
     ^
te.c:3:6: note: expected ‘int * (*)[20]’ but argument is of type ‘int (*)[20][20]’
 void f(int *app[][20]) {
大卫·拉涅里(David Ranieri)
void f(int *app[][20]) { /* a 2d array of pointers to int */

应该

void f(int app[][20]) { /* a pointer to an array of 20 int's */

或者

void f(int (*app)[20]) { /* a pointer to an array of 20 int's */

*app[i][j] = i;

应该

app[i][j] = i; /* you don't need to dereference */

f(&app);

应该

f(app);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C中通过引用传递多维数组

来自分类Dev

在C中通过引用传递数组

来自分类Dev

在C ++中通过引用传递数组

来自分类Dev

在C中通过引用传递数组

来自分类Dev

在C ++中传递多维数组

来自分类Dev

如何在C ++中通过引用传递数组元素?

来自分类Dev

在C中通过引用传递二维数组

来自分类Dev

通过C ++中的引用传递未签名的char数组

来自分类Dev

通过引用数组传递给C ++中的模板函数

来自分类Dev

在C ++中通过引用传递?

来自分类Dev

通过引用传递数组并修改值C ++

来自分类Dev

C ++通过引用传递位域数组

来自分类Dev

C ++如何通过引用函数传递数组

来自分类Dev

PHP更新多维数组中的值不是通过引用

来自分类Dev

通过html将多维键控数组传递到javascript中

来自分类Dev

C ++数组是通过引用还是通过指针传递的?

来自分类Dev

在C中通过const引用传递

来自分类Dev

在C ++中通过引用传递对象

来自分类Dev

通过C ++中的引用选项传递

来自分类Dev

C ++通过构造函数中的引用传递

来自分类Dev

通过引用在C中传递指针

来自分类Dev

C#中如何通过引用传递

来自分类Dev

C ++通过引用传递静态数组和动态数组

来自分类Dev

使用C中的指针通过引用传递和更改数组

来自分类Dev

在C ++中通过引用传递1d和2d数组

来自分类Dev

PHP数组通过引用传递?

来自分类Dev

PHP数组通过引用传递?

来自分类Dev

在C90中传递多维数组(VLA之前的样式)

来自分类Dev

如何在多线程C ++中传递多维数组