gpt4 book ai didi

c - 如何将二维数组传递给C中的函数?

转载 作者:行者123 更新时间:2023-12-02 09:15:11 26 4
gpt4 key购买 nike

我的函数原型(prototype)是

int** rotate(int **arr, int row, int col, int fl);

其中arr是二维数组,rowcol分别是二维数组的行数和列数,fl 是一个标志变量。如果fl的值为0则数组将向右旋转,如果fl为1则数组将向左旋转。

我按如下方式调用该函数:

int **res= rotate(arr, row, col, fl);

但是我收到了一个警告和一个注释

[Warning] passing argument 1 of 'rotate' from incompatible pointer type.

[Note] expected 'int **' but argument is of type 'int (*)[20]'

最佳答案

指向指针的指针与指向数组的指针不同。数组到指针的衰减只能发生在最左侧(例如 int [3][20]int (*)[20] )。

将函数声明更改为

int** rotate(int (*arr)[20], int row, int col, int fl);

或更明显的是,

int** rotate(int arr[][20], int row, int col, int fl);

请注意,您必须在编译时修复大小。

关于c - 如何将二维数组传递给C中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47904671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com