Muss man Speicher immer freigeben??
-
HI Lejute,
es ist doch eigentlich nicht so dramatisch wie manche leute immer behaupten wenn man mal einen malloc()-speicherbereich nicht wieder freigibt oder??? ist es unter windows xp und linux nicht eigentlich auch egal? wird nicht der gesamte speicher beim ende des programms freigegeben vom betriebssystem wenn der prozess zerstört wird?
-
Manche leute beenden Programme garnicht und lassen ihen PC sehr lange laufen.
-
Auch wenn das OS aufpasst und deine Spielsachen notfalls für dich wegräumt -wenn man sich da von Anfang einen gewissen Ordnungssinn angewöhnt, vergisst man es später bei größeren Projekten (wo es wirklich drauf ankommt) nicht mehr so leicht.
Aber trotzdem noch oft genug.
-
Das gehört zum guten Ton: Wenn dein Programm auf einem fremden PC ausgeführt wird, dann ist es da Gast. Und dann hat es die Ressourcen, die es anfordert, auch wieder freizugeben.
Serversysteme laufen mitunter wochenlang (oder länger), ohne die gestartete Software neu zu starten. Und es nervt generell tierisch, wenn bei längerer Anwendung das Programm immer mehr Speicher frisst. Du wirst es vielleicht nicht glauben, aber es hat nicht jeder 1GB und mehr RAM unter der Haube! Und wenn dann zusätzlich noch andere Software läuft -> Prost Mahlzeit!
Fehlende Speicherfreigabe ist kein Ding, welches man dem OS überlassen darf, sondern schlichtweg ein Bug in der Software! Und eine Software die Bugs hat, ist eine schlechte Software! Und wenn die Bugs dann auch noch vom Programmierer bewusst eingepflegt worden sind, dann ist die Software keine schlechte Software mehr sondern Datenmüll ...
-
Hi Siska, ich kann meinen Vorrednern nur zustimmen. Du programmierst warscheinlich nur privat oder? Also bei meinen bisherigen Projekten auf Arbeit waren und sind "Memory leaks" und Abstürze die schwerwiegensten Softwarefehler.
Stell dir einfach mal vor du müsstest nach wenigen Seiten deinen Browser schließen, weil dieser den Speicher zugemüllt hat. Wäre doch schrecklich oder