动态内存分配后,C++程序暂停

Cha*_*had 1 c++

我在简单的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)

该程序似乎完全停止,没有返回一个明显的错误.

如果我尝试调试程序,调试器工作正常,直到我到达复制方法.然后调试器显示一个对话框,说明:

当前位置没有可用的源代码.

知道什么是错的吗?

Ada*_*ght 6

    for(vector<int>::iterator iter = sudokuBoard[i][j].possibleIntegers.begin(); iter!= sudokuBoard[i][j].possibleIntegers.end();)
Run Code Online (Sandbox Code Playgroud)

您似乎没有在该循环中推进迭代器,因此它永远不会结束.添加++iter到计数表达式(在最后一个;在for循环中).

至于为什么您的调试器无法找到该位置的源,这取决于平台.你使用什么调试器?