【发布时间】:2019-04-13 05:06:27
【问题描述】:
我正在创建“船舶”游戏。我生成了 mField,这将是我的模板,用船只填充敌方区域。为此,我想将 mField 复制到 eField 中。
我的 mField 是结构“字段”的动态二维数组,它在我的 cpp 文件中填充如下:
mField = new Field*[x+3];
for (int i = 0; i < x+3; ++i)
mField[i] = new Field[y+3];
并在我的头文件中这样声明
Field **mField;
现在复制我试过了
memcpy(&eField, &mField, sizeof(&mField));
虽然现在当我用船填充我的 mField 时,我在敌方领域看到了 mField 的精确副本,而不是它是干净的领域。 这就是我将我的字段传递给改变我的字段的函数的方式:
void Map::changeField(int x, int y, string ciag,Field **field) {
...
}
我是否在函数中犯了一些错误,即它同时更改了两个数组,或者我以错误的方式复制了数组?
【问题讨论】:
标签: c++ arrays multidimensional-array struct