首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传递函数中的参数时重复发生错误

传递函数中的参数时重复发生错误
EN

Stack Overflow用户
提问于 2018-03-27 21:38:38
回答 2查看 53关注 0票数 1

在我的程序中,我遇到了同样的两个错误无数次。下面是程序的一个片段来说明这个问题:

代码语言:javascript
复制
void update_table(char ary[SIZE][SIZE], int row, int column, char token)
{

if(token == 'X')
    ary[row][column] = 'X';
else if(token == 'O')
    ary[row][column] = 'O';


}

..。

代码语言:javascript
复制
void generate_player2_move(char a[SIZE][SIZE], int rw, int cn)
{
char type = 'X';
srand(time(NULL));
rw = rand() % 3;
cn = rand() % 3;


    while(check_legal_option(a[SIZE][SIZE], rw, cn) == 1)
    {

    rw = rand() %3;
    cn = rand() %3;

    }
printf("Player 2 has entered [row, col]: %d,%d", rw, cn);
update_table(a[SIZE][SIZE], rw, cn, type);
display_table(a[SIZE][SIZE]);
}

这是我一直在犯的两种错误:

代码语言:javascript
复制
note: expected ‘char (*)[3]’ but argument is of type ‘char’
 void update_table(char ary[SIZE][SIZE], int row, int column, char token)

代码语言:javascript
复制
  warning: passing argument 1 of ‘update_table’ makes pointer from integer without a cast [-Wint-conversion] update_table(a[SIZE][SIZE], rw, cn, type);

我对第一个错误感到困惑,因为我认为这个论点是char * [3],然后我不太明白第二个错误。

EN

Stack Overflow用户

发布于 2018-03-27 22:32:05

generate_player2_move函数的参数声明为char aSIZE。很明显,你正在试图传递一个二维的字符数组。但是,当传递数组时,实际上是传递指向数组中第一个元素的指针。您没有传递数组本身。因此,因为二维数组实际上是数组的数组,所以参数的声明实际上应该是指向数组的指针,数组的大小为字符。参数应声明如下: char (*a)SIZE

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49522828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档