man das programm nicht richtig aufräumt?
-
Vor allem ist es mühsam, wenn der Name des Threaderstellers für den Anfang, der Titel für die Fortsetzung und der Text dann für die "genauere" Beschreibung steht...

-
drakon schrieb:
Simon2 schrieb:
...
Er hat den OP gemeint. Schau dir mal seinen ersten Post an.

Aha !

OK, danke,
Simon2.
-
drakon schrieb:
Aber mach mal ne Datei auf und vergesse den Filestream wieder zu löschen.
Mit Filestreams wird das aber nicht funktionieren.

EDIT:
Zumindest nicht so einfach.Echt?
int main () { fstream *f = new fstream("test.txt"); }
-
Ja, echt.
-
Bulli schrieb:
...
Ja. Klar, aber das hat in erster Linie mal nicht direkt was mit dem Stream selbst zu tun. Klar kann man natürlich auch eine RAII Klasse dynamisch anfordern und nicht freigeben.
Das hat dann aber nichts mehr mit vergessen zu tun..
-
Jo, sowas hat genauso viel Sinn, wie das hier:
std::auto_ptr<std::fstream>* schwachsinn = new std::auto_ptr<std::fstream>(new std::fstream("genau"));
-
Tachyon schrieb:
Jo, sowas hat genauso viel Sinn, wie das hier:
std::auto_ptr<std::fstream>* schwachsinn = new std::auto_ptr<std::fstream>(new std::fstream("genau"));
was, nebenbei gesagt, ein potentielles Speicherleck darstellt.
-
camper schrieb:
Tachyon schrieb:
Jo, sowas hat genauso viel Sinn, wie das hier:
std::auto_ptr<std::fstream>* schwachsinn = new std::auto_ptr<std::fstream>(new std::fstream("genau"));
was, nebenbei gesagt, ein potentielles Speicherleck darstellt.

Gibs zu. Du hast den Thread nicht gelesen.
-
camper schrieb:
Tachyon schrieb:
Jo, sowas hat genauso viel Sinn, wie das hier:
std::auto_ptr<std::fstream>* schwachsinn = new std::auto_ptr<std::fstream>(new std::fstream("genau"));
was, nebenbei gesagt, ein potentielles Speicherleck darstellt.
Ach, da nimmt man einfach noch 'nen auto_ptr.

-
was passiert wenn schrieb:
einige beispiele new ohne delete
GetDC ohne ReleaseDC
sockets ohne sie zu schließen.
Bei mir funktioniert alles auch ohne freigeben
Also gehen wir doch mal zum Thema.
Heutzutage kostet Speicher nicht viel. Da kann man sich delete eigentlich sparen. Du kannst den nicht freigegebenen Speicher dann von Zeit zu Zeit auf DVD Brennen und dann über den normalen Hausmüll entsorgen. Dabei ist allerdings zu beachten, daß Du die Daten nicht kopierst sondern wirklich verschiebst. Alternativ kannst Du Dir auch eine 2. Festplatte kaufen. Da kannst Du die Daten dann unterbringen und wenn die Kapazität dann dort zur Neige geht, einfach formatieren. Da Du ja da kein Betriebssystem hast, brauchst Du das nicht neu zu installieren.
Bei Sockets ist die Sache ein wenig einfacher. Du musst einfach hin und wieder den Netzwerkstecker ziehen. Dann laufen die übrig gebliebenen Sockets einfach aus.
Mit GetDC und ReleaseDC kenne ich mich nicht aus, da ich mit Linux arbeite und das soweit ich das in Erinnerung habe, mit dem Windows GDI zu tun hat. Aber wenn Du da Probleme vermeiden willst, installier Dir einfach ein Linux. Dann hast Du gar kein GetDC mehr und brauchst das ReleaseDC dann auch nicht mehr.
-
tntnet schrieb:
...Du musst einfach hin und wieder den Netzstecker ziehen....
Das ist sowieso die Lösung solcher Probleme.

Gruß,
Simon2.