gpt4 book ai didi

c - 在 C 中传递和返回二维数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:21 25 4
gpt4 key购买 nike

我根本没有用 C 编写太多代码,所以我很难使用 2D 数组的指针。我有一个整数类型的 3x3 二维数组。

这是我尝试使用的方法:

 void addMoveToBoard(int *gameArray[3][3], int a, int b, int player) {
*((int *)gameArray + x * 3 + y) = player;
if (a == 0) {
mvaddch(a, b, 'X');
}
...
}

这是我的主要内容:

int *board[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
addMoveToBoard(board, 0, 0, 1);

第一个问题是当我为第二个和第三个参数传递零时,当我在函数中使用它们时它们不是 0。使用 mvaddch(a,b, 'X') 时,a 和 b 似乎是 1 而不是 0。我是否正确地为游戏数组中的元素赋值?

最佳答案

将您的函数签名更改为不带 *:

void addMoveToBoard(int gameArray[3][3], int a, int b, int player)

现在写:

gameArray[x][y] = player;

主要是:

int board[3][3] = {{0,0,0},{0,0,0},{0,0,0}};

其他的就OK了。需要知道的重要一点是,编译器会看到您使用数组并将其作为指向函数的指针传递。该函数接收一个指向板数组的指针,当您将其索引为 [x][y] 时,编译器“知道要做什么”。

关于c - 在 C 中传递和返回二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40579273/

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