【发布时间】:2015-06-05 05:09:33
【问题描述】:
所以我想将一个二维数组的内容复制到另一个完全相同类型的数组中。以下是数组的创建方式:
GridUnit** newGrid;
newGrid = new GridUnit*[width];
for (int i = 0; i < width; i++)
newGrid[i] = new GridUnit[height];
GridUnit 的大小为 16(4 个浮点数)。所以这一切都初始化得很好,使用它没有问题,因为它是在我运行 for 循环以实际用一些数据填充值之后。现在我想要做的是将另一个数组的内容复制到这个数组中(如果可能,不要使用 for 循环)。到目前为止,这是我一直在尝试做的事情:
memcpy(&newGrid, &grid, height * width * 16);
'grid' 在大小和类型方面与 'newGrid' 相同。但是,这不起作用。我知道 memcpy 可能不正确,但是使用它尝试了多种不同的设置,我不知道它出了什么问题,所以欢迎任何帮助!
【问题讨论】:
-
天哪。请只使用向量,它会正常工作。
vec1 = vec2; -
是的,它会让我的生活变得更轻松,只是碰巧我没有决定使用这样的数组,而现在它们被用于整个代码库。
-
我会认真考虑重写它。向量有很多优点,例如在良好的调试编译器上进行边界检查。