我有以下代码,我想让board现在具有new_board的值,反之亦然。由于它们都是指针,所以我认为我可以交换它们指向的地址。当我在print2()中打印时,地址已经适当地交换了。然而,当我在print1()中打印时,地址又不知怎么地交换回来了,这对我来说毫无意义。此外,如果我在print2()中打印出board的值,它们也是正确的。
main(){
char *new_board = (char *)malloc(sizeof(char) * rows * cols );
char *board = (char *)malloc(sizeof(char) * rows * cols );
update_board2(board, new_board, rows, cols);
print1();
}
void update_board2(char *board, char *new_board, int rows, int cols){
//do a bunch of stuff
char *temp = board;
board = new_board;
new_board = temp;
print2();
}
update_board2
操作的是传递的参数的副本。此外,new_board
和board
没有声明为指针。您遇到了哪些编译错误和警告? - CB Bailey