首页 > 解决方案 > 为什么我不能将此数组传递和编辑给函数?

问题描述

我之前的问题得到了回答,但我还有另一个同样的问题。为什么我尝试使用多维数组时代码不起作用?

void change(int *);

int main(void){
    int array[1][2] = {2};

    printf("%d", array[1][2]);
    change(array);
    printf("%d", array[1][2]);
}

void change(int *array){
    array[1][2] = 4;
}

标签: c

解决方案


您需要在声明和定义时使用星号作为参数。为了使array[0]=4,您只需将4分配给array[0],不带星号。所以你的代码应该是:

void change(int *);

int main(void){
    int array[1] = {2};

    printf("%d", array[0]);
    change(array);
    printf("%d", array[0]);
}

void change(int *array){
    array[0] = 4;
}

推荐阅读