C将二维数组指向另一个二维数组

标签 c arrays pointers

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/

相关文章:

客户端服务器通信中的校验和代码

c - mex 无法识别内联

javascript - 使用indexOf()检查JS数组中是否存在特定对象

javascript - 如何将对象转换为对象数组(或对象集合)

c - 我认为想要更改值时需要双指针

我可以在不损失精度的情况下打印完全可表示的 float 吗?

c - msleep(毫秒)与 msleep_interruptible(毫秒)

c# - 从抽象类型对象数组访问特定子类的对象

C - fgets 在初始化指针时不等待输入

c++ - 如果已知 void* 分配大小,如何将确切的内存大小传递给 free()