首页 > 解决方案 > 在 C++ 中初始化二维数组时出现“递归调用终止”错误

问题描述

我一直在尝试用 C++11 编写数独游戏。我有一个 Cell 类,它用作数独网格中的单个正方形。网格被封装在 Sudoku 类中。

这是数独类的构造函数:

Sudoku::Sudoku(int rows, int cols)
{
    this->setRows(rows);
    this->setCols(cols);

    this->grid = new Cell **[this->rows];

    unsigned int i, j;

    for (i = 0; i < this->rows; i++)
    {
        for (j = 0; j < this->cols; j++)
        {
            std::cout << "i: " << i << " j: " << j << std::endl;
            this->grid[i][j] = new Cell();
        }
    }

    this->populateGrid();
    this->hideCells();
}

这是 Cell 构造函数:

Cell::Cell()
{

    this->number = 0;

    this->isHidden = false;
}

由于数独构造函数中的打印语句,我得到以下输出:

i: 0 j: 0
i: 0 j: 1
i: 0 j: 2
terminate called recursively

重要提示:数独网格初始化为 10x10 单元格。所以我真的不知道为什么在创建前 3 个单元格后它会停止。

提前感谢任何回答的人。

解决方案:初始化网格的每一行有助于解决问题。感谢所有帮助过的人!

标签: c++c++11

解决方案


推荐阅读