所以我的数组是:
int **board = (int **)malloc(size * sizeof(int *)); //declaring board
for (int i = 0; i < size; i++)
board[i] = (int *)malloc(size * sizeof(int));
我的show score函数是这样的
void showScore(int **arr)
{
int score = 0;
for(int i = 0; i <size; i++)
{
for (int j = 0; j < size; j++)
{
score += arr[i][j];
}
}
printf("score %d\n\n" , score - 2);
}
我遇到的问题是当我调用它时该函数不起作用
showScore(&board);
关于如何修复我的函数/调用它有什么建议吗?我所需要的只是计算二维动态数组的总和
最佳答案
您正在将指针的地址传递给以指针作为参数的函数。 “board”变量包含数组中第一个元素的地址(例如,board == &board[0][0])。您应该简单地将“board”传递给您的函数,因为它是指针类型(因为您的函数将其作为参数),而不是传递存储该指针值的数据部分的地址(就像您目前所做的那样)。
关于c - 函数中调用的函数 C 中使用的二维动态数组参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41106745/