gpt4 book ai didi

将多字符数组复制到另一个多字符数组

转载 作者:行者123 更新时间:2023-11-30 17:13:05 24 4
gpt4 key购买 nike

我正在将 Java 代码转换为 C 代码,就像在 Java 中交换多数组的内容一样简单:

boolean[][] temp = board;
board = nextBoard;
nextBoard = temp;

用C语言似乎麻烦很多。

在查看此网站上的类似问题后,我了解到我必须使用 memcpy,它是我在名为 arrayCopy 的方法中启动的。

这是arrayCopy:

 void arrayCopy(char * a, char * b)
{
struct universe data;
int r;
for(r = 0; r < data.rows; r++)
memcpy(b, a, sizeof(a));
}

我从主方法调用:

char temp[SIZE][SIZE];
arrayCopy(&data.board, &temp);
arrayCopy(&data.nextBoard, &data.board);
arrayCopy(&temp, &data.nextBoard);

具有以下结构:

struct universe
{
char board[SIZE][SIZE];
char nextBoard[SIZE][SIZE];
int columns;
int rows;
}universe;

但我收到警告,例如:

A2Q1.c:189:15: warning: incompatible pointer types passing 'char (*)[60][60]' to parameter of type 'char *'

但是 memcpy 仅返回指针,因此我无法切换参数。正如其他问题所建议的那样,我还无法使用 malloc() 因为我还没有学会它,所以任何其他建议将不胜感激。

最佳答案

试试这个

void swapBoard(struct universe *x){
char temp[SIZE][SIZE];
memcpy(temp, x->board, sizeof(temp));
memcpy(x->board, x->nextBoard, sizeof(temp));
memcpy(x->nextBoard, temp, sizeof(temp));
}
int main(){
struct universe data;
//...
swapBoard(&data);

关于将多字符数组复制到另一个多字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083056/

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