Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi Guybrush,

das delete [] ist im Gegensatz zu delete fuer Zeiger da, die du auch durch einem new [] Aufruf erhalten hast.

z.B.

N *p = new N[5];

delete[] p;

N *p = new N;

delete p;

Goos

Geschrieben
Originally posted by Klotzkopp

Der Unterschied in der Wirkung ist übrigens der, dass delete ohne eckige Klammern zwar den gesamten Speicher freigibt, aber nur den Destruktor des ersten Elements aufruft.

Das heißt also, dass es bei einem string egal ist, oder?

Geschrieben

Nuja laut Standard musst du alles was du mit new[] allokiert hast auch mit delete[] freigeben, ansonsten ist das Verhalten undefiniert ;)

Was dann aber auch heisst, es kann gut sein, dass es doch funktioniert.

Es wuerde also wohl bei nem String funktionieren, aber egal ists auch wieder nicht, denn sogesehen kannst du die deletes ja auch ganz weglassen....funktioniert doch auch :D

Goos

Geschrieben
Originally posted by Guybrush Threepwood

Erst mal:D

Aber bei einem String geht es doch "nur" darum den Speicher wieder freizugeben.

Der hat ja keine Destruktoren die evtl. aufgerufen werden müssen.

Das Freigeben des Speichers wird üblicherweise über den Destruktor implementiert.

Nic

Geschrieben
Originally posted by nic_power

Das Freigeben des Speichers wird üblicherweise über den Destruktor implementiert.

Nic

Da war ich wieder etwas undeutlich, ich meinte einen C-String.

Der hat ja keinen Destruktor, weil es sich ja um kein Objekt handelt und

deshlab müßte es doch egal sein, oder?

Geschrieben
Originally posted by Guybrush Threepwood

Da war ich wieder etwas undeutlich, ich meinte einen C-String.

Der hat ja keinen Destruktor, weil es sich ja um kein Objekt handelt und

deshlab müßte es doch egal sein, oder?

Die Grundregel lautet, wie bereits erwähnt, wenn new [] dann delete [] .

period.

Frank

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...