__gmpq_init内存泄漏的来源

时间:2018-08-27 04:54:48

标签: c memory-leaks valgrind gmp

我正在使用valgrind在使用GMP(尤其是mpq数据类型)的C程序上检查内存泄漏。我收到了几份几乎完全相同的有关内存泄漏的报告,格式如下:

==16009== 480 bytes in 60 blocks are definitely lost in loss record 43 of 56
==16009==    at 0x1000B5596: malloc (in /usr/local/Cellar/valgrind/HEAD-fee5954/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==16009==    by 0x1000C4856: __gmp_default_allocate (in /usr/local/Cellar/gmp/6.1.2_1/lib/libgmp.10.dylib)
==16009==    by 0x1048A960F: ???
==16009==    by 0x1000DA382: __gmpq_init (in /usr/local/Cellar/gmp/6.1.2_1/lib/libgmp.10.dylib)

问题似乎是由于GMP库中某个地方的进程函数__gmpq_init引起的。我不知道何时分配此内存,因为未在从中编译可执行文件的.c文件中调用它,也不知道如何修复它。

如果相关,我也使用其他GMP数据类型(mpz,mpfr等),它们不会引起类似的内存泄漏问题。

0 个答案:

没有答案