Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Übergeben eines Dynamischen Arrays als Argument der Funktion | Spezifikation von Funktionsargumenten
C++-Funktionen

Übergeben eines Dynamischen Arrays als Argument der Funktion

Swipe um das Menü anzuzeigen

Übergabe eines eindimensionalen Arrays

Ein eindimensionales dynamisches Array kann an eine Funktion übergeben werden, indem ein Zeiger auf das Array zusammen mit der Arraygröße als separater Parameter übergeben wird. Da Arrays beim Übergeben an Funktionen in Zeiger zerfallen, kann ein Zeiger auf das erste Element des Arrays übergeben werden. So funktioniert es:

main.cpp

main.cpp

12345678910111213141516171819202122232425262728
#include <iostream> // Function that takes a dynamic array and its size as parameters void process(int* arr, const int size) { // Access elements of the array using the pointer and the size for (int i = 0; i < size; ++i) std::cout << arr[i] << " "; std::cout << std::endl; } int main() { // Dynamic array allocation int size = 5; int* dynamic_array = new int[size]; // Initializing the dynamic array for (int i = 0; i < size; ++i) dynamic_array[i] = i * 2; // Passing the dynamic array to the function process(dynamic_array, size); // Deallocate the dynamic array to prevent memory leaks delete[] dynamic_array; }

Die Funktion processArray() erhält ein dynamisches Integer-Array (int*) und dessen Größe als Parameter. In main() wird ein dynamisches Array der Größe 5 erstellt, initialisiert und mithilfe seines Namens und der Größe an die Funktion übergeben.

Übergabe eines zweidimensionalen Arrays

Bei der Arbeit mit einem dynamischen zweidimensionalen Array (ein Array von Zeigern, wobei jeder Zeiger auf ein Array von Elementen zeigt), kann dieses als Zeiger auf einen Zeiger zusammen mit den Dimensionen an eine Funktion übergeben werden.

main.cpp

main.cpp

1234567891011121314151617181920212223242526272829303132333435
#include <iostream> // Function that takes a dynamic 2D array and its size as parameters void process(int** arr, int rows, int cols) { for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) arr[i][j] = i * cols + j; // Fill array with values for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) std::cout << arr[i][j] << " "; std::cout << std::endl; } } int main() { int rows = 3; int cols = 4; // Dynamic 2D array allocation int** dynamicArray = new int*[rows]; for (int i = 0; i < rows; i++) dynamicArray[i] = new int[cols]; // Pass the 2D array to the function process(dynamicArray, rows, cols); // Deallocate the dynamic 2D array for (int i = 0; i < rows; i++) delete[] dynamicArray[i]; delete[] dynamicArray; }

Die Funktion process() nimmt ein dynamisch allokiertes 2D-Array (int**) und dessen Dimensionen als Parameter entgegen und füllt es anschließend mit Werten. Das Array wird der Funktion über seinen Namen übergeben.

question mark

Was ist die korrekte Deklaration einer Funktion, die ein dynamisches eindimensionales Integer-Array akzeptiert?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 5
some-alt