我在简单的C++程序中遇到了复制方法的问题.我每次打电话给副本:
Sudoku::SudokuNode** Sudoku::copy(SudokuNode** sudokuBoard)
{
SudokuNode** tempSudokuBoard = new SudokuNode*[9];
for(int i = 0; i<9; i++)
{
tempSudokuBoard[i] = new SudokuNode[9];
for(int j = 0; j<9; j++)
{
tempSudokuBoard[i][j].currentInteger = sudokuBoard[i][j].currentInteger;
for(vector<int>::iterator iter = sudokuBoard[i][j].possibleIntegers.begin(); iter!= sudokuBoard[i][j].possibleIntegers.end();)
{
tempSudokuBoard[i][j].possibleIntegers.push_back(*iter);
}
}
}
return tempSudokuBoard;
}
Run Code Online (Sandbox Code Playgroud)
该程序似乎完全停止,没有返回一个明显的错误.
如果我尝试调试程序,调试器工作正常,直到我到达复制方法.然后调试器显示一个对话框,说明:
当前位置没有可用的源代码.
知道什么是错的吗?
for(vector<int>::iterator iter = sudokuBoard[i][j].possibleIntegers.begin(); iter!= sudokuBoard[i][j].possibleIntegers.end();)
Run Code Online (Sandbox Code Playgroud)
您似乎没有在该循环中推进迭代器,因此它永远不会结束.添加++iter到计数表达式(在最后一个;在for循环中).
至于为什么您的调试器无法找到该位置的源,这取决于平台.你使用什么调试器?
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |