我正在尝试在C中创建数组的深层副本(originalBoard是副本):
int gy, gx;
for (gy=0; gy<9; gy++)
{
for (gx=0; gx<9; gx++)
{
g.originalBoard[gy][gx]=g.board[gy][gx];
}
}
这似乎没有解决,我猜测这只是指向原始板阵列的指针。
那么解决方案是尝试使用malloc吗?喜欢:
int* g.originalBoard[9][9]=malloc(sizeof(g.board[9][9]));
顺便说一句,这是一个9x9的二维数组。语法是什么(编译器在上一行中给出了错误...)?
最佳答案
我认为您需要这样做:
//assuming g.originalBoard is array of array of integers and same for g.board
int *originalBoard = malloc(sizeof(g.board));
memcpy(originalBoard, g.board, sizeof(g.board));