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