我编写了一个使用 maxmin 算法玩游戏的 AI。基本上我现在要深入 1 级。我想我有内存泄漏,但我不知道如何追踪它。我使用了 gdb,但它没有帮助。
这是正在发生的事情:
for (i = 0; i < max_legal; i++) {
AddToBoard(legal_columns[i], legal_pieces[i]);
val = Min(depth - 1, legal_columns[i]);
RemoveFromBoard(legal_columns[i]);
......
}
-
legal_column
数组有{1,1,2,2...12,12}
-
legal_pieces
数组有{1,3,1,3....1,3}
当 i = 5
,合法件有{1, 3, 1, 3, 1, 3, 97, 0 <repeats 11 times>}
.
我不知道 97 和 0 是从哪里来的。它被覆盖了吗?我如何找到它?
最佳答案
您正在使用 gdb,所以我假设您在 Linux 机器上运行。您可以轻松使用 valgrind跟踪内存泄漏。
valgrind --leak-check=full --show-reachable=yes <your-app>
关于c - 如何检查内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058121/