Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在GMP 手册的整数部分:
函数:void mpz_clear (mpz_t x) 释放 x 占用的空间。完成后为所有 mpz_t 变量调用此函数。
函数:void mpz_clear (mpz_t x)
释放 x 占用的空间。完成后为所有 mpz_t 变量调用此函数。
调用这个过程会减慢我的程序,所以如果没有必要我不想这样做。
问题:如果我不使用 mpz_clear 会发生什么?
我的猜测是可能会发生内存泄漏。虽然,我不确定我是否应该关注这一点(例如,C 可能会为我清理它,或者当程序退出时可能会返回内存)。
它会导致你的内存泄漏。 C 没有垃圾收集器来为您释放它。你必须通过调用上述函数来做到这一点。 是的,当程序退出时,操作系统会回收内存。但是,如果您通过连续分配而继续泄漏内存并且没有解除分配,那么您的程序可能无法正常运行更长的时间,因为由于连续的内存泄漏,它没有足够的内存。
如果调用该函数导致您崩溃,您应该调试并找到崩溃的原因并修复它。