(注意:我目前正在学习 C++,所以如果有更好的方法来做我正在做的事情,解释会很有帮助。)
我正在用 C/C++ 制作康威的生命游戏,并有以下代码:
bool ** previous;
bool ** current;
void init() {
previous = new bool*[width];
current = new bool*[width];
for (int i =0; i < width; i++) {
previous[i] = new bool[height];
current[i] = new bool[height];
}
}
动态数组的原因是宽度和高度由用户在运行时给出。如果我有一维数组,我可以执行以下操作:
bool * previous;
bool * current;
void () {
bool * temp = current;
current = previous;
previous = temp;
}
但是,这种方法在二维数组中并不如所希望的那样工作。由于它在技术上是一个数组数组,我是否必须单独交换每个子数组指针?有没有更好的方法来定义多维数组并交换它们?
编辑:我还没有真正使用任何 C++ 特定的功能,所以如果我可以在纯 C 中做到这一点,我更喜欢那个。