用c中的指针在二维数组中求和

Find the sum in 2d array with pointers in c

我试过了,但我得到了 "sum=6",这是错误的。 代码有什么问题? 这是代码:

#include <stdio.h>
#define ROW 2
#define COL 3

int sum(int(*array)[3]);

int main(void)
{
    int a[ROW][COL] = { {1 , 2, 3} ,
                        {4 , 5, 6} };
    printf(" sum = %d\n", sum (a));
    return 0;
}

int sum(int(*array)[3]) 
{
    int i,j, sum = 0;
    for (i =0; i < ROW ; i ++) {
        for (j =0; j < COL ; j ++) {
            sum = sum + *(*( array +i )+j);
        }
    }
}

您忘记 return 函数中 sum 的值

int sum(int(*array)[3]) 
{
    int i,j, sum = 0;
    for (i =0; i < ROW ; i ++) {
        for (j =0; j < COL ; j ++) {
            sum = sum + *(*( array +i )+j);
        }
    }
    return sum; /* HERE */
}

注意

sum = sum + array[i][j];

更具可读性
sum = sum + *(*( array +i )+j);