====== Speicherhandling ======
In C wird Speicher mit den Funktionen [[c:lib:stdlib:malloc()]] und [[c:lib:stdlib:free()]] angefordert, bzw. freigegeben.
In C dürfen void-Zeiger auf einen beliebigen Typ ohne Cast zugewiesen werden. In C++ darf man das sinnvollerweise nicht mehr.
Beide Funktionen arbeiten mit void *, so dass man [[c:lib:stdlib:malloc()]] in C++ erst auf den jeweiligen Datentyp casten muss und man die benötigte Größe selbst berechnen muss:
int * pInt = (int *) malloc( sizeof( int ) );
...
free( pInt );
===== new und delete =====
Der Operator ''new'' geht das Problem an und liefert einen Zeiger auf den richtigen Datentyp zurück.
int * pInt = new int;
...
delete pInt;
Ein int ist 4 Bytes ( bzw. sizeof(int) Bytes ) groß, dies berechnet new im Gegensatz zu malloc nun selbst.
===== Arrays =====
Arrays werden ebenfalls mit new und delete angefordert. Dennoch gibt es hier einen Unterschied: Es wird ein ''new []'' verwendet und entsprechend wird auch ein ''delete []'' verwendet.
int * pInt = new int[10];
...
delete [] pInt;
Hierbei ist wichtig, dass Arrays mit ''delete []'' freigegeben werden müssen. Dies wird später bei der Verwendung von [[cpp:class:start|Klassen]] notwendig.