2012-04-15 8 views
1

In dem ganzzahligen Abschnitt der GMP manual:Was passiert, wenn ich mpz_clear nicht in GMP verwende?

Funktion: void mpz_clear (mpz_t x)

Free the durch x besetzten Raum. Rufen Sie diese Funktion für alle mpz_t Variablen auf, wenn Sie damit fertig sind.

Der Aufruf dieses Verfahrens verlangsamt mein Programm, also würde ich es lieber nicht machen, wenn es unnötig ist.

Frage: Was passiert, wenn ich nicht mpz_clear verwenden Sie?

Meine Vermutung wäre, dass Speicherverlust auftreten könnte. Obwohl ich unsicher bin, ob ich darüber besorgt sein sollte oder nicht (z. B. kann C es für mich aufräumen, oder vielleicht wird der Speicher zurückgegeben, wenn das Programm beendet wird).

Antwort

4

Es wird zu einem Speicherverlust führen.
C hat keinen Garbage Collector, um es für Sie freizugeben. Sie müssen dies tun, indem Sie die genannte Funktion aufrufen.
Ja, der Speicher wird vom Betriebssystem zurückgewonnen, wenn das Programm beendet wird. Aber wenn Sie weiterhin Speicher durch kontinuierliche Zuweisung und keine Freigabe verlieren, dann wird Ihr Programm wahrscheinlich für längere Zeit nicht ordnungsgemäß ausgeführt werden, da es nicht genügend Speicher aufgrund von Speicherverlust haben würde.

Wenn das Aufrufen der Funktion einen Absturz verursacht, sollten Sie den Fehler beheben und den Grund für einen Absturz finden und beheben.

+0

Danke für das Aufräumen. –

Verwandte Themen