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/

10-13 05:30