Сбой памяти Dr в Visual Studio с & quot; ПРЕДУПРЕЖДЕНИЕ: приложение вышло с ненормальным кодом 0xc0000409 & quot;

Я создал класс Node и попытался реализовать простую древовидную структуру, используя C ++. Я протестировал код, Visual Studio смогла скомпилировать и вывести ожидаемые результаты. Однако, когда я пытался Dr Memory проверить утечку памяти, Dr Memory всегда зависал в определенных точках, включая:
1) в конструкторе класса Node «col = vec [0] .size ()» 2) в функции расстояния «col = vec [0] .size ()»

Если бы я сохранил эти строки, Visual Studio может скомпилировать и вывести правильные данные, однако, Dr Memory аварийно завершает работу … Если я прокомментировал эти строки, Dr Memory работает … Так что я совершенно запутался, какая часть пошла не так, это узлы на куча? или вектор? или доктор памяти … спасибо

// node class
class Node {
public:
vector<vector<int>> board;
int row;
int col;
Node(vector<vector<int>> &vec): board(vec) {
row = vec.size();
col = vec[0].size();
}
Node(Node *&node): board(node->board) {}
};

// calculate distance
int distance(v2_i &vec) {
int ans = 0;
int row = vec.size();
int col = vec[0].size();
for(int i=0; i<row; i++) {
for(int j=0; j<col; j++) ans += abs(vec[i][j]-(i*row+j+1));
}
return ans;
}

// main function
int main() {
vector<vector<int>> startBoard = input_txt();
Node *node_1 = new Node(startBoard);
Node *node_2 = new Node(node_1);

cout << distance(node_2->board) << endl;

delete node_1;
delete node_2;
return EXIT_SUCCESS;
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]