absturz
-
is das free(...) zwingend erforderlich oder kann man das auch weglassen weil es klappt auch ohne nur weis ich halt nicht welche auswirkungen das hat
-
ja, das free gibt den speicher wieder frei.
wenn das vergisst, dann hat dein programm ein sog. speicher loch und das ist nicht gut.
-
@esskar
Speicherlöcher sind wirklich was fieses und haben mir schon des öfteren fast den letzten Nerv geraubt. Klar, zur Laufzeit zusätzlich in Anspruch genommener Speicher muss wieder freigegeben werden.Aber FREE()? Sag mir das des ein pures C-Programm ist, und ich versteh dich vollkommen. Aber in Zeiten von C++ und Objekten sollte man sich doch lieber new und delete bedienen.
-
BloodLord schrieb:
@esskar
Speicherlöcher sind wirklich was fieses und haben mir schon des öfteren fast den letzten Nerv geraubt. Klar, zur Laufzeit zusätzlich in Anspruch genommener Speicher muss wieder freigegeben werden.Aber FREE()? Sag mir das des ein pures C-Programm ist, und ich versteh dich vollkommen. Aber in Zeiten von C++ und Objekten sollte man sich doch lieber new und delete bedienen.
es kommt immer darauf an, was der jeweilige mensch codet.
schließlich haben wir auch einen spezial ansi-c bereich in diesem forum.
und das obige programm sieht nun nach c ausviele schüler und studis lernen c pur. thats it .
-
@elisa
Is klar, C lebt! War mir nicht 100% sicher ob des jetzt C oder C++ sein soll... Und in C++ sollte man halt auf sachen wie alloc() und free() verzichten.
-
fast immer.
-
BloodLord schrieb:
@elisa
Is klar, C lebt! War mir nicht 100% sicher ob des jetzt C oder C++ sein soll... Und in C++ sollte man halt auf sachen wie alloc() und free() verzichten.schon klar...
für Klassen oder Structs, die wieder KlassenObjecte enthalten, ist new und delete sehr sehr sehr sinnvoll.
wenn ich aber nur ein char pointer habe und weiß, für was ich es gebrauche, schadet *alloc und free gar nix...
man muss eben wissen was man wie genau macht
-
@esskar
Richtig und man sollte wissen, ob man nur C, nur C++ oder beides verwenden will. Wobei man sich am besten für eins von beiden entscheiden sollte.
-
wenn ich aber nur ein char pointer habe und weiß, für was ich es gebrauche, schadet *alloc und free gar nix...
Ich würde dennoch new/delete nehmen - wieso unterschiedlich? Da kanns dann am Ende auch noch passieren, dass eine Mischung auftritt -> dumme Sache dann.
MfG SideWinder
-
SideWinder schrieb:
Da kanns dann am Ende auch noch passieren, dass eine Mischung auftritt -> dumme Sache dann
ich würde es auch keinem empfehlen, der nicht genau weiß, was er tut.
ich hatte z.b mal einen memory manager geschrieben, der alle new's und delete's auf alloc's und free's abgebildet hat; alles andere war aber komplett c++.