(注:私は現在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];
}
}
動的配列の理由は、幅と高さが実行時にユーザーによって指定されるためです。1次元配列がある場合、次のことができます。
bool * previous;
bool * current;
void () {
bool * temp = current;
current = previous;
previous = temp;
}
ただし、このアプローチは、2次元配列では期待どおりに機能しません。技術的には配列の配列であるため、各サブ配列ポインターを個別に交換する必要がありますか?多次元配列を定義してそれらを交換するためのより良い方法はありますか?
編集:私はまだC ++固有の機能を実際に使用していないので、純粋なCでこれを実行できるのであれば、それをお勧めします。