C潜在的内存泄漏malloc

时间:2016-02-25 12:02:13

标签: c opencv memory-leaks

以下是插入在openCV contrib分支中开发的哈希表(显然)中的代码。我怀疑代码中存在内存泄漏。我怀疑的原因是我从大约200 MB的文件读取哈希表,当我检查程序在几秒钟内运行时消耗的内存超过1GB,如果我让它运行一段时间整个操作系统崩溃超过6 GB。

我对C有一点了解,但我想确保是这种情况。如果有内存泄漏,我该如何解决?

schema.rb

1 个答案:

答案 0 :(得分:2)

我无法发现内存泄漏(如果有),但当然可以使用内存泄漏检查程序valgrind。你在运行时运行它。

如果您无法从我提到的链接中了解如何使用它,请执行以下操作:

  

让我们将您的计划作为hash.c。到了命令行并编译它,例如:

gcc hash.c -Wall
     

如果您的程序成功编译,将出现可执行文件或out文件。由于我们没有指定可执行文件的名称,因此它的默认名称为a.out。所以让我们用valgrind

运行它
valgrind -- leak-check=full ./a.out
     

这将运行可执行文件以及valgrind,如果存在内存泄漏,它将在可执行文件结束时显示它。

           

如果您没有安装valgrind,可以从here安装。