如果我不在GMP中使用mpz_clear会怎样?

时间:2012-04-15 04:31:47

标签: c gmp

GMP manual的整数部分:

  

功能:void mpz_clear(mpz_t x)

     

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

调用此程序会减慢我的程序速度,所以如果没有必要,我不愿意这样做。

  

问题:如果我不使用mpz_clear会怎样?

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

1 个答案:

答案 0 :(得分:5)

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

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