0
我在寫一個最終將解決8皇后問題的類。我添加了一個名爲populate的測試方法,以確保我正確創建2d數組並正確動態分配內存,但是當此方法被稱爲程序崩潰時,當我調試下面的Visual Studio錯誤時彈出:2d-Array嘗試填充時失敗
Exception thrown at 0x01281DFB in 8Queen.exe: 0xC0000005: Access violation writing location 0xCDCDCDCD.
If there is a handler for this exception, the program may be safely continued.
我的構造函數:
Queen::Queen(int s)
{
size = s;
board = new int *[size];
for (int i = 0; i < size; ++i)
board[size] = new int[size];
}
我填入方法:
void Queen::populate()
{
for (int i = 0; i < size; ++i) // for each row
for (int j = 0; j < size; ++j) // for each column
board[i][j] = 1;
}
我的解構:
Queen::~Queen()
{
for (int i = 0; i < size; i++)
delete[] board[i];
delete[] board;
}
我主:
int main()
{
fm::Queen board(10);
board.populate();
board.printBoard();
return 0;
}
什麼?這對你的工作很好嗎? – BlooB
以及在調試器中,我確實發生了這個錯誤,我可以發佈完整的代碼 – BlooB
嘗試創建一個[mcve],它會重現錯誤並用完整的代碼更新您的問題。 – cbuchart