0

我正在尝试制作 2x2 数组,将其初始化为 0,然后将其传递给函数。

我试过用

int array[2][2] = {0}

但只有前 5 个值显示为 0。

对我来说更大的问题是将数组传递给函数。

二维数组是指向指针的指针吗?所以我应该能够将其传递为;

function(**array);

它是否正确?

当我尝试在函数中访问这个数组时,我可以使用以下格式访问它吗?

void function (int **array){
    array[0][2] = choice
}

因为这不起作用,我假设我必须在某个地方定义数组的大小。

谢谢。

4

1 回答 1

6

“二维数组是指向指针的指针吗?” - 错误的。二维数组就是这样——一个二维数组;即一维数组的数组。

如果要将 2x2 数组传递给函数,请使用指向 2x2 数组的指针:

static void function (int (*array)[2][2]){
    //(*array)[0][2] is out of bounds...
    (*array)[1][0] = 3;
}

int main(void) {
    int array[2][2] = {{0}};
    function(&array);
    return 0;
}
于 2013-04-14T12:28:07.300 回答