gpt4 book ai didi

c - 在c语言windows中通过函数重置二维数组

转载 作者:行者123 更新时间:2023-11-30 21:17:04 25 4
gpt4 key购买 nike

我想重置二维板,但我不知道如何返回指向数组的指针。我也认为一定有一种更简单的方法来重置它,但找不到。

char reset_board(int rows,int columns,char board[rows][columns])
{
for(int i = 0;i<rows;i++)
{
for(int j=0;j<columns;j++)
{
board[i][j] == ' ';
}
}
return &board[0][0];
}

最佳答案

不必返回任何内容,您正在使用指向数组的指针(数组衰减为指针)。因此,您所做的任何更改都将反射(reflect)在被调用者中。如果您很好奇,那么知道二维数组 char s[ROW][COL] 在传递给函数时会衰减为 char (*)[COL]

void reset_board(int rows,int columns,char board[rows][columns])
{
....
}

这有效。

更简单的方法是使用memset

memset(board,' ',sizeof board);

memset (board, ' ', rows * columns * sizeof **board);

但这仅在声明为 char board[ROW][COL] 的范围内有效。

<小时/>

此外return &board[0][0];这是返回char的地址,因此它将是char*类型而不是字符

关于c - 在c语言windows中通过函数重置二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47844047/

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