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.3.2 Die Funktion realloc()

9.3.2 Die Funktion realloc()

Mit dieser Funktion ist es möglich, den Speicherbedarf einer Variable oder besser gesagt den Bereich, worauf ein Pointer zeigt, zu verändern. Dabei wird aber im seltensten Fall der Bereich einfach größer gemacht. Meistens wird ein ganz neuer Bereich im RAM reserviert, der alte Inhalt dorthin verschoben und der alte Bereich freigegeben. Das scheint wie eben bereits erwähnt, ziemlich Zeitaufwendig zu sein, aber ganz so schlimm ist dies auch nicht, da intern viel bessere Mechanismen benutzt werden, als ,am das von Hand hinbekommen würde.

Das Schema sieht so aus:
<Zeigervariable> = (<VariablenTypeDesZeigers>)realloc(<Zeigervariable>, <Größe>)

Im folgenden Beispiel sehen Sie, wie ich zunächst ein Array anlege und mich später dafür entscheide, es doch größer haben zu wollen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
					
// Ein Array mit Platz für drei Integer
int* pArray	= (int*)malloc(3 * sizeof(int));
pArray[0]	= 10;
pArray[1]	= 20;
pArray[2]	= 30;

// Array vergrößern, da noch ein vierter Integer rein muss
pArray		= (int*)realloc(pArray, 4 * sizeof(int));
pArray[3]	= 40;

printf("%i %i %i %i\n", pArray[0], pArray[1], pArray[2], pArray[3]);

free(pArray);
					

Ausgabe:

4
8.7
		
Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012