Источник утечки памяти __gmpq_init - PullRequest
0 голосов
/ 27 августа 2018

Я проверяю утечки памяти с помощью valgrind на C-программе, которая использует GMP, и в частности на типах данных mpq.Я получаю несколько почти идентичных отчетов об утечке памяти в следующей форме:

==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)

Проблема, похоже, связана с процессом функцией __gmpq_init где-то в библиотеке GMP.Я не понимаю, когда эта память выделяется, так как она не вызывается в файле .c, из которого был скомпилирован исполняемый файл, или как это исправить.

Если это уместно, я использую и другие типы данных GMP (mpz, mpfr и т. Д.), И они не вызывают аналогичных проблем утечки памяти.

...