In vielen Büchern und Tutorials wurde das Speichermanagement betont und ich hatte das Gefühl, dass einige mysteriöse und schreckliche Dinge passieren würden, wenn ich den Speicher nicht freigeben würde, nachdem ich ihn nicht mehr benutze.
Ich kann nicht für andere Systeme sprechen (obwohl es für mich vernünftig ist anzunehmen, dass sie eine ähnliche Vorgehensweise anwenden), aber zumindest unter Windows kann der Kernel die meisten Ressourcen (mit Ausnahme einiger weniger) bereinigen, die von verwendet werden ein Programm nach Programmende. Dazu gehört unter anderem Heap-Speicher.
Ich verstehe, warum Sie eine Datei schließen möchten, nachdem Sie sie verwendet haben, um sie dem Benutzer zur Verfügung zu stellen, oder warum Sie einen mit einem Server verbundenen Socket trennen möchten, um Bandbreite zu sparen Sie müssen ALLEN von Ihrem Programm verwendeten Speicher verwalten.
Jetzt bin ich damit einverstanden, dass diese Frage weit gefasst ist, da der Umgang mit Ihrem Speicher davon abhängt, wie viel Speicher Sie benötigen und wann Sie ihn benötigen. Daher werde ich den Umfang dieser Frage auf Folgendes eingrenzen : Wenn ich ein Stück von verwenden muss Ist es wirklich notwendig, den Speicher während der gesamten Lebensdauer meines Programms freizugeben, bevor das Programm beendet wird?
Bearbeiten: Die als Duplikat vorgeschlagene Frage war spezifisch für die Unix-Betriebssystemfamilie. Die beste Antwort war sogar ein Linux-spezifisches Tool (z. B. Valgrind). Diese Frage bezieht sich auf die meisten "normalen" nicht eingebetteten Betriebssysteme und darauf, warum es sinnvoll ist, Speicher freizugeben, der während der gesamten Lebensdauer eines Programms benötigt wird.