2012-04-15 3 views
1

В целочисленной части GMP manual:Что произойдет, если я не использую mpz_clear в GMP?

Функция: ничтожной mpz_clear (mpz_t х)

Свободное пространство, занимаемое х. Вызовите эту функцию для всех переменных mpz_t, когда вы закончите с ними.

Вызов этой процедуры замедляет мою программу, поэтому я бы предпочел не делать этого, если это не нужно.

Вопрос: Что произойдет, если я не использую mpz_clear?

Я предполагаю, что утечка памяти может произойти. Хотя, я не уверен, что я должен быть обеспокоен этим (например, C может очистить его для меня, или, возможно, память возвращается, когда программа выходит).

ответ

4

Это приведет к утечке памяти.
C не имеет сборщика мусора, чтобы освободить его для вас. Вы должны сделать это, вызвав указанную функцию.
Да, память восстанавливается ОС при выходе программы. Но если вы продолжаете просачивать память через непрерывное выделение и не освобождаете, то, вероятно, ваша программа не будет работать должным образом в течение более длительного времени, потому что у нее не хватит памяти из-за постоянной утечки памяти.

Если вызов функции дает вам сбой, вы должны отлаживать и находить причину сбоя и исправить его.

+0

Спасибо за освобождение. –

Смежные вопросы