Speicherlöcher
-
Also mal was wahrscheinlich ganz dummes. Was "passiert", wenn ich Speicherlöcher hinterlasse. - Also auch nachdem das Programm beendet wurde. Und mit welchen Hilfmitteln kann ich überprüfen, ob ich Speicher übriggelassen habe ?
-
h2owasser schrieb:
Also mal was wahrscheinlich ganz dummes. Was "passiert", wenn ich Speicherlöcher hinterlasse. - Also auch nachdem das Programm beendet wurde.
die werden beim beenden des programmes gelöscht/sollten vom os freigegeben werden.
mfg
-
Speicherlöcher: ja, die werden frei gegeben
Resourcenlöcher: vielleicht, die können nicht immer frei gegeben werden.Deswegen verwendet man das RAII Idiom und schon gibts keine Löcher mehr
Für alles andere verwendet man zB einen Memory Checker oder einfach eine Art DebugNew.
-
Danke schonmal !!,
Hab aber noch Fragen
Wo ist der Unterschied zwischen Speicher- und Resourcenloch?
Ist das RAII Idiom sowas wie ein Smart Pointer ?
Wie verweldet man (welche) Memory Checker und eine Art DebugNew ?Fragen über Fragen..
Danke euch.
PS. Ich benutze gnu g++ als Compiler.
-
Wo ist der Unterschied zwischen Speicher- und Resourcenloch?
Ein Speicherloch entsteht, wenn angeforderter Speicher nicht mehr freigegeben wird (malloc ohne free bzw. new ohne delete). Ein Resourcenleck entsteht, wenn beispielsweise eine geöffnete Datei nicht mehr geschlossen wird. Dann ist sie immer noch "locked", und andere Programm können nicht mehr drauf zugreifen.
-
h2owasser schrieb:
Ist das RAII Idiom sowas wie ein Smart Pointer ?
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=Leak#Answ