3

GMP 手册的整数部分:

函数:void mpz_clear (mpz_t x)

释放 x 占用的空间。完成后为所有 mpz_t 变量调用此函数。

调用这个过程会减慢我的程序,所以如果没有必要我不想这样做。

问题:如果我不使用 mpz_clear 会发生什么?

我的猜测是可能会发生内存泄漏。虽然,我不确定我是否应该关注这一点(例如,C 可能会为我清理它,或者当程序退出时可能会返回内存)。

4

1 回答 1

6

它会导致你的内存泄漏。
C 没有垃圾收集器来为您释放它。你必须通过调用上述函数来做到这一点。
是的,当程序退出时,操作系统会回收内存。但是,如果您通过连续分配而继续泄漏内存并且没有解除分配,那么您的程序可能无法正常运行更长的时间,因为由于连续的内存泄漏,它没有足够的内存。

如果调用该函数导致您崩溃,您应该调试并找到崩溃的原因并修复它。

于 2012-04-15T04:35:29.990 回答