delete / free
-
Hallo, mal eine alte Frage bei dessen Antwort ich mir allerdings immernoch nicht sicher bin ...
1. Kann man mit free() speicher freigeben der durch new eingenommen wurde ?
2. kann man mit delete/ delete[] speicher freigeben, der nicht mit new erstellt wurde ?Gruß Chris
-
1. Ja
2. Ja3. Probiers aus
-
1. Nein
2. Nein3. Was soll das sein? Beweis durch Beispiel?
BorisDieKlinge, nur weil du einen Compiler benutzt, bei dem das möglicherweise funktioniert, ist das noch lange nicht in Ordnung.
-
BorisDieKlinge schrieb:
1. Ja
2. JaFalsch - in beiden Fällen lautet die Antwort "nein" (bzw. gehört es in die Kategorie "undefiniertes Verhalten", was rauskommt, wenn du new und free() (oder malloc() und delete) zusammenwirfst).
btw, selbst die Mischung von new und delete[] gilt als undefiniert.
-
dem stimme ich zu. im regelfall führt dies zu unvorhersehbaren verhalten.
-
na gut dass ich gefragt hab xD das wusste ich so genau nicht danke!
Gruß Chris
-
3. Probiers aus
1/2 => ironie.. sowas sollte man doch test nbevor man frägt.. deswgen meine aussage^^
-
BorisDieKlinge schrieb:
1/2 => ironie.. sowas sollte man doch test nbevor man frägt.. deswgen meine aussage^^
Testen? Was denn? Testen bring bei undefiniertem Verhalten genau garnichts.
-
BorisDieKlinge schrieb:
3. Probiers aus
1/2 => ironie.. sowas sollte man doch test nbevor man frägt.. deswgen meine aussage^^
Testen bringt da nichts. Bei undefiniertem Verhalten ist nicht festgelegt, was passiert. Das muss nicht fehlschlagen.
-
heute trett ich überall ins fettnäpfchen;)) :p