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.1 Unveränderliche dynamische Felder

9.3.1 Unveränderliche dynamische Felder

Als erstes möchte ich Ihnen zeigen, wie man schnell und einfach dynamische Arrays mit "new" anlegt, mit ihnen arbeitet und anschließend mit "delete" wieder freigibt.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
					
int iAnzahl;

printf("Bitte geben Sie an, wie viele Floats im Array sein sollen: ");
scanf("%i", &iAnzahl);
printf("\n");

// Wenn ein ungültiger Bereich angegeben wurde
if (iAnzahl < 1) {
	iAnzahl			= 1;
} // end of if

// Pointer auf ein dynamisches Array mit Floats anlegen
float* pArrayOfFloats		= new float[iAnzahl];

// Durchlaufe die Elemente im Array
for (int iCount=0; iCount<iAnzahl; iCount++) {
	float fEingabe;

	printf("Bitte ein float eingeben: ");
	scanf("%f", &fEingabe);

	pArrayOfFloats[iCount]	= fEingabe;
} // end of for

printf("\n");

// Durchlaufe die Elemente im Array
for (int iCount=0; iCount<iAnzahl; iCount++) {
	printf("[%i] = %g\n", iCount, pArrayOfFloats[iCount]);
} // end of for

// Reservierten Speicher wieder freigeben
delete [] pArrayOfFloats;
					

Ausgabe:

Bitte geben Sie an, wie viele Floats im Array sein sollen: 3

Bitte ein float eingeben: 1.2
Bitte ein float eingeben: 2.3
Bitte ein float eingeben: 3.4

[0] = 1.2
[1] = 2.3
[2] = 3.4
		

Allerdings ergibt sich jetzt hier bereits eines der erwähnten Nachteile von "new" und "delete". Man kann im Nachhinein keine weiteren Elemente hinzufügen bzw. entfernen. Um dies zu realisieren, müsste man den Inhalt des gesamten Feldes irgendwo zwischenspeichern, dass original mit "delete" freigeben und mit "new" und einer neuen Größenangabe neu anlegen. Dieser Mechanismus ist nicht nur umständlich, sondern auch Zeitaufwändig.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012