new und malloc gleich ?
-
Hallo,
mal en ne Quicky Frage...NEW holt ja Speicher vom HEAP und nicht vom STACK. Gilt das selber für malloc ?
MfG Cassis. :xmas2:
-
Jein. Bei new nennt man das halt freestore und bei malloc heap. Praktisch gesehen gibt es aber so gut wie keinen Unterschied zwischen den beiden Begriffsdefinitionen. Man kann ruhigen Gewissens sagen, dass sowohl new als auch malloc Speicher auf dem Heap alloziieren.
Dies bedeutet allerdings nicht, dass man die Wahl hat, ob man den Speicher mit free oder delete freigibt. Mit new angeforderter Speicher MUSS mit delete freigegeben werden und mit malloc angeforderter Speicher sollte entsprechend mit free freigegeben werden.
-
MaSTaH schrieb:
Jein. Bei new nennt man das halt freestore und bei malloc heap. Praktisch gesehen gibt es aber so gut wie keinen Unterschied zwischen den beiden Begriffsdefinitionen. Man kann ruhigen Gewissens sagen, dass sowohl new als auch malloc Speicher auf dem Heap alloziieren.
Dies bedeutet allerdings nicht, dass man die Wahl hat, ob man den Speicher mit free oder delete freigibt. Mit new angeforderter Speicher MUSS mit delete freigegeben werden und mit malloc angeforderter Speicher sollte entsprechend mit free freigegeben werden.Imho ist es doch auch noch so, dass new und delete bei Klassen den Kon-/Destruktor aufrufen was malloc nicht tut.
-
Jop, sollte man der Vollständigkeit halber noch erwähnen, ich dachte das wäre sowieso klar. Es ging ja nur darum woher der Speicher kommt.
-
OK besten Dank Jungs.
Frage beantwortet