Parameterübergabe (call by reference)
-
cryps schrieb:
ab wann ist ein objekt "groß" genug sodass ich mir überlegen muss ob der heap geeigneter wär ?
Dafür gibt es eigentlich keine klare Regel. Du brauchst dir auch nicht zu grosse Gedanken darum zu machen, ich würde wenn möglich auf dem Stack arbeiten. Es ist auch legitim, zum Beispiel lokale Streams (die eher als "grösser" gelten) den Stack zu benutzen. Oder auch Container, da diese sowieso intern den Heap benutzen.
-
thx
eine letzte frage noch:
gibt es eine möglichkeit zu überprüfen ob und welche objekte es gibt bei denen man vergessen hat speicherplatz wieder freizugeben?
ich denke bei einem großem projekt und wenn man viel am heap arbeitet verliert man vielleicht auch leicht die übersicht.. und das programm läuft ja auch "korrekt" durch ohne dass man jedes memory-leak gestopft hat....
-
Nennt man Memory Leak detector.
Valgrind kann das zum Beispiel:
http://valgrind.org/
-
Ist auch ganz spannend, sowas selber zu programmieren. Besonders, wenn einen die Speicherverwaltung interessiert.

Wenn du Microsoft Visual C++ benutzt, hast du schon einen eingebauten Memory Leak Detector zur Verfügung.
-
Microsoft Visual C++
nein verwend ich nicht.. eigentlich verwend ich zZ. noch gar keine ide und arbeite mich mit einem normalen editor mit syntax-highlighting durch.
hab mir ms visual c++ angeschaut und es gefällt mir sehr gut. allerdings wird in der lva (auf die ich mich vorbereite) gcc verwendet also werd ich wohl später auf eclipse zurückgreifen...
-
drakon schrieb:
Hat schon gestummen.
Es gibt tatsächlich 1200 Treffer bei Google für "gestummen". Das u könnte man ja noch als vertipptes i werten, aber "gestimmen" wäre immer noch falsch. "gestimmt" hätte gestimmt.
-
1200 schrieb:
drakon schrieb:
Hat schon gestummen.
Es gibt tatsächlich 1200 Treffer bei Google für "gestummen". Das u könnte man ja noch als vertipptes i werten, aber "gestimmen" wäre immer noch falsch. "gestimmt" hätte gestimmt.
Er ist Schweizer und im Schweizerdeutschen gibt es nunmal:
"Es het gstumme."
Daraus macht man dann schnell den Fehler:
"Es hat gestummen."
@cryps,
Und wenn sie den GCC verwenden, wieso kannst du nicht den MSVC verwenden? Bei uns an der Uni verwenden sie auch den GCC, bisher konnte ich aber ohne Probleme immer den MSVC einsetzen. Solange der Code dem Standard nachkommt, sollten die beiden Kompiler ohne Probleme damit klar kommen.Grüssli
-
1200 schrieb:
drakon schrieb:
Hat schon gestummen.
Es gibt tatsächlich 1200 Treffer bei Google für "gestummen". Das u könnte man ja noch als vertipptes i werten, aber "gestimmen" wäre immer noch falsch. "gestimmt" hätte gestimmt.
Unglaublich, wie einige nonreg auf die Rechtschreibung fixiert sind..

Ich weiss, dass es gestimmt heisst, allerdings schreibe ich nicht immer mit voller Konzentration auf die Rechtschreibung.. und da kann es mal passieren, dass man sich vertippt, oder halt, wie es mir passiert ein zu sehr verschweizerdeutschtes Wort ohne gross überlegen mal so hinschreibe.. Jetzt kannst du dich über das Wort "verschweizerdeutscht" aufregen, dass es auch nicht gibt..
-
Und wenn sie den GCC verwenden, wieso kannst du nicht den MSVC verwenden? Bei uns an der Uni verwenden sie auch den GCC, bisher konnte ich aber ohne Probleme immer den MSVC einsetzen. Solange der Code dem Standard nachkommt, sollten die beiden Kompiler ohne Probleme damit klar kommen.
hm werd ich vielleicht probieren
ich möchte nur keine unangenehmen überraschungen erleben zB: dass ich mit dem programm fertig bin und gcc dann doch meckert 
Solange der Code dem Standard nachkommt
was wäre denn ein kleines beispiel für einen nicht dem standard entsprechenden code?
-
Indem du Spracherweiterungen des Compilers nutzt oder du dich auf ein Verhalten davon verlässt. (z.B in welcher Reihenfolge Ausdrücke ausgewertet werden).
Oder z.B muss eine Datei mit einem Whitespace enden. MSVC erlaubt mit der Spracherweitung auch mit einem normalen Zeichen. Das kann dazu führen, dass der Code auf einem anderen Compiler plötzlich nicht mehr kompiliert.