c - 为什么我无法将此数组传递给函数并对其进行编辑?

标签 c

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

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;
}

最佳答案

声明和定义时参数需要使用星号。 要使 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;
}

关于c - 为什么我无法将此数组传递给函数并对其进行编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56307004/

相关文章:

c - 将数据写入以 2 帧发送的套接字

python - Cython:从 C 程序调用 Python 代码

c - 使用 write() 将整数列表写入文件

c - 如何在结构中为 typedef 分配内存 (C)

c - 以下代码中 XCode 输出和 gcc 输出之间差异如此之大的原因是什么?

c - 线程打开套接字

c - Git 类似于 C 中的寻呼机和编辑器处理

通过 PPM 在 C 中创建标志

c - setuid()后如何恢复到原始状态/用户?

c - 素数逻辑,循环中的 n/2 条件