c - 如何检查内存泄漏

标签 c memory-leaks

我编写了一个使用 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/

相关文章:

c - 链表函数返回局部变量的地址

c - 从 linux 内核或 udev 监听硬件变化事件

swift - 为什么存储子字符串可能会导致 Swift 中的内存泄漏?

java - 远程识别客户使用的应用程序中的内存泄漏

c++ - 将 uint32_t 添加到不同命名空间中的队列时发生内存泄漏

c++ - 确定函数何时在 C++ 中分配内存

ssl - boost::asio::ssl 内存泄漏,即使使用 boost::asio::ssl 示例

c - 2的负次方

CryptGenRandom 返回不统一的结果

c - Makefile输出到子文件夹