int newBoard[9][9];
int dirtyBoard[9][9];
/*add stuff to every element of dirtyBoard*/
...
newBoard = &dirtyBoard;
我试图让我的 newBoard 成为 cleanBoard 的精确副本。由于性能是一个问题,我想看看我是否可以绕过创建一个循环来一次复制每个元素 1 以支持更改我的指针地址或其他内容。这可能吗?
最佳答案
使用 memcpy。
memcpy( newBoard , dirtyBoard , sizeof( newBoard )) ;
不要忘记两个数组的大小必须相同,或者至少要复制到的数组必须更大。
assert( sizeof( newBoard ) == sizeof( dirtyBoard ) ) ;
如果您只想指向 dirtyBoard,请使用指针。
int (*p)[9] = dirtyBoard ;
现在 p 的行为几乎与 dirtyBoard 完全相同。
关于C将二维数组指向另一个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158866/