Я предлагаю вам создать простой класс или структуру для хранения состояния вашего форума. Внутренне используйте std::vector
, чтобы вам не приходилось беспокоиться об управлении памятью.
Вы даже можете перегрузить operator[](int)
, чтобы заставить его работать как двумерный массив, если хотите.
#include <vector>
class Board
{
public:
Board(int width, int height)
: mWidth(width)
, mHeight(height)
, mState(width * height)
{}
int* operator[](int row) { return mState.data() + row * mWidth; }
const int* operator[](int row) const { return mState.data() + row * mWidth; }
int Width() const { return mWidth; }
int Height() const { return mHeight; }
private:
int mWidth, mHeight;
std::vector<int> mState;
};
Теперь просто создайте его, когда вы знаете, какой он должен быть размер:
Board board(width, height);
Конструктор для std::vector
инициализирует все значения нулями.
Вы можетераспечатайте это, обратившись к нему с помощью методов, которые я добавил:
for (int row = 0; row < board.Height(); row++)
{
for (int col = 0; col < board.Width(); col++)
{
std::cout << ' ' << board[row][col];
}
std::cout << std::endl;
}
Или, что еще лучше, создайте на доске другой метод, например Print()
.