Menu
CoddyTech

Arrays und Funktionen

Teil des Abschnitts Grundlagen der C++-Journey von Coddy. Lektion 62 von 74.

Arrays können nicht direkt als vollständige Arrays an Funktionen übergeben werden. Wenn du versuchst, ein Array an eine Funktion zu übergeben, „zerfällt“ es in einen Zeiger auf sein erstes Element.

Zum Beispiel:

int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
	int size = std::size(arr);
}

std::size(arr) lässt sich hier nicht kompilieren, weil arr tatsächlich ein Zeiger und kein Array ist und ein Zeiger die Größe des Arrays nicht speichert. Zeiger lernst du im nächsten Kurs kennen.

Deshalb müssen wir beim Übergeben von Arrays an Funktionen normalerweise die Größe als separaten Parameter übergeben:

void processArray(int arr[], int size) {
    // Jetzt können wir mithilfe des Parameters size sicher mit dem Array arbeiten
}

So rufst du die Funktion auf:

int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);

Außerdem ist es nicht möglich, in einer Funktion ein Array zurückzugeben:

int[] processArray(int arr[]) {
	return arr;
}

Das ist nicht zulässig. Verwende stattdessen die Syntax *:

int* processArray(int arr[]) {
	return arr;
}
int* newArr = processArray(arr);

Die Sternsyntax (*) bezieht sich auf Zeiger, die im nächsten Kurs besprochen werden.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-C++-Compiler