C语言 传递多维数组



我试图使2x2数组,初始化为0,并将其传递给函数。

我试过用

初始化它
int array[2][2] = {0}

,但只有前5个值为0。

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

一个二维数组是指针指向指针,对吗?所以我应该可以把它作为;

传递
function(**array);

正确吗?

当我试图在函数中访问这个数组时,我可以以

的格式访问它吗?
void function (int **array){
    array[0][2] = choice
}

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

谢谢。

"一个二维数组是指针指向指针,对吗?"——是错误的。二维数组就是一个二维数组;即一个由一维数组组成的数组。

如果你想传递一个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;
}

相关内容

  • 没有找到相关文章

最新更新