Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

9.2.3 Die Präfixoperatoren new und delete

9.2.3 Die Präfixoperatoren new und delete

Wie im Kapitel 9.2.2 gezeigt, ist das Reservieren von Speicher etwas umständlich und gewöhnungsbedürftig. Eine Vereinfachung wird durch "new" und "delete" erreicht (erst ab C++), wobei man aber strengstens darauf achten muss, dass man alle Sachen, die mit "new" angelegt wurden, auch mit "delete" freigegeben werden. Ebenso müssen alle Sachen die mit "malloc" bzw. "calloc" erstellt wurden, auch mit "free" wieder freigegeben werden!

Das Schema sieht so aus: <Zeigervariable> = new <ReferenzierterVariablentyp>

 1
 2
 3
 4
					
// Speicher für einen Float reservieren
float* pZeigerAufFloat = new float;

delete pZeigerAufFloat;
					

Allerdings ergeben sich auch Nachteile bei der Verwendung dieser Präfixoperatoren, da "new" und "delete" eigentlich für Objekte gedacht sind. Einmal angelegter Speicher kann nicht mehr verändert werden. Hat man also flexible Typen, wie dynamische Arrays oder Listen, kann man diese zwei nicht verwenden bzw. nur sehr eingeschränkt, aber dazu später mehr.

An dieser Stelle möchte ich Ihnen noch einen kleinen Rat mit auf den Weg geben. Vermeiden Sie es, ständig "new" und "delete" zu verwenden. Dadurch wird nicht nur ihr Hauptspeicher fragmentiert, sondern ggf. hängen an diesen Operationen auch Auslagerungsaktionen mit daran. Unter Umständen kann es also wirklich lange dauern, bis der Speicher tatsächlich zur Verfügung steht. Deshalb ist es sinnvoll, alle Sachen wenn möglich bei Programmstart zu erzeugen und dann bei Programmende wieder freizugeben. Das Programm wird zwar dann zur ganzen Laufzeit mehr Speicher benötigen als vielleicht im Moment notwendig, aber dafür läuft es zwischen drin schneller, da die Speicherverwaltung des Betriebssystems nicht angeleiert werden muss und die Daten zudem meist hintereinander im Speicher liegen, was sehr günstig für den Cache und somit ihr Programm ist.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012