C++ eindimensionale und mehrdimensionale felder

Einfaches Feld/Array, Zeiger auf ein Feld, Zeiger auf ein Feld von zeigern



Eindimensionale und Mehrdimensionale Arrays
In diesem Artikel werden verschiedene Methoden/Vorgehensweisen gezeigt wie Felder angelegt und ausgelesen werden können.



Eindimensionale Felder

// === Eindimensionales Feld von Character ===
 
// 1. Variante (automatische Feldgrößenzuweisung)
char arrA[] = "Hallo";
 
// 2. Variante (Feldgröße selber bestimmen)
char arrB[6] = "Hallo\0"; // \0 darf hier nicht vergessen werden!
 
// 3. Variante (direkte Arrayinitialisierung)
char arrC[6] = {'H', 'a', 'l', 'l', 'o', '\0'}; // Auch hier bitte \0 nicht vergessen
 
// === Eindimensionales Feld von Integer ===
int arr[10];
 
for(int i=0; i<10; i++) // Array mit Daten füllen
  arr[i] = i*2;
 
 
// Ausgabe
cout << arr[2] << endl; // Array an der Stelle 2 ausgeben
 
// === Zeiger auf eindimensionales Feld von Integer ===
int* arrPtr;
arrPtr = new int[10];
 
for(int i=0; i<10; i++) // Array mit Daten füllen
  arrPtr[i] = i*2;
 
 
// Ausgabe
cout << arrPtr[2] << endl; // Array an der Stelle 2 ausgeben
 
// === Zeiger auf eindimensionales Int-Feld von zeigern ===
int** arrPtrPtr;
arrPtrPtr = new int*[10];
 
for(int i=0; i<10; i++) // Array mit Daten füllen
{
  int* j = new int(i*2);
  arrPtrPtr[i] = j;
}
 
 
// Ausgabe
cout << *arrPtrPtr[2] << endl;
 
Zweidimensionale Felder
// === Zweidimensionales Array von Integer ===
int arr2D[20][10];
 
for(int i=0; i<10; i++) // Array mit Daten füllen
  for(int j=0; j<10; j++) // Array mit Daten füllen
    arr2D[i][j] = i*j*2;
 
 
// Ausgabe
cout << arr2D[2][2] << endl; // Array an der Stelle 2 ausgeben
 
// === Zweidimensionales Array von Strings ===
int len1 = 10; // Groesse der 1. Dimension
int len2 = 20; // Groesse der 2. Dimension
 
 
string** matrix = new string*[len1]; // 1. Dimension anlegen
for(int i=0; i<len1; i++)
  matrix[i] = new string[len2]; // 2. Dimension anlegen
 
 
 
// Alle mit new erzeugten Arrays wieder löschen
for(int i=0; i<len1; i++)
  delete[] matrix[i]; // 2. Dimension löschen
delete[] matrix; // 1. Dimension löschen