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 | Funktionsargumente Spezifikation
C++ Funktionen

bookÜbergeben eines dynamischen Arrays als Argument der Funktion

In C++ ist ein dynamisches Array ein Array, dessen Größe zur Laufzeit geändert werden kann. Im Gegensatz zu statischen Arrays, bei denen die Größe zur Kompilierzeit festgelegt ist, ermöglichen dynamische Arrays die Speicherzuweisung für das Array zur Laufzeit und eine Anpassung der Größe nach Bedarf.

Im Folgenden wird erläutert, wie 1-dimensionale und 2-dimensionale dynamische Arrays als Funktionsargumente übergeben werden können.

Übergabe eines 1-dimensionalen Arrays

In C++ kann ein 1-dimensionales dynamisches Array an eine Funktion übergeben werden, indem ein Zeiger auf das Array zusammen mit der Array-Größ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. Das Vorgehen ist wie folgt:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324252627
#include <iostream> // Function that takes a dynamic array and its size as parameters void processArray(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] << " "; // cout instead of std::cout std::cout << std::endl; // endl instead of std::endl } int main() { // Dynamic array allocation int size = 5; int* dynamicArray = new int[size]; // Initializing the dynamic array for (int i = 0; i < size; ++i) dynamicArray[i] = i * 2; // Passing the dynamic array to the function processArray(dynamicArray, size); // Deallocate the dynamic array to prevent memory leaks delete[] dynamicArray; }

In diesem Beispiel ist processArray() eine Funktion, die ein dynamisches Integer-Array (unter Verwendung des Typspezifizierers int*) und dessen Größe als Parameter übernimmt. Im main()-Funktion wird ein dynamisches Array der Größe 5 erstellt und initialisiert. Anschließend wird die Funktion processArray() aufgerufen, wobei das dynamische Array über seinen Namen und seine Größe als Argumente übergeben wird.

Übergabe eines 2-dimensionalen Arrays

Bei der Arbeit mit einem dynamischen 2-dimensionalen 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. So kann dies umgesetzt werden:

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526272829303132333435
#include <iostream> // Function to fill a dynamic 2D array with values void fillDynamic2DArray(int** arr, const int rows, const int cols) { // Fill the array with values (for demonstration purposes) for (int i = 0; i < rows; ++i) for (int j = 0; j < cols; ++j) arr[i][j] = i * cols + j; // You can modify this line to fill the array as desired // Print the filled array std::cout << "Filled Dynamic 2D Array:" << std::endl; 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; // Allocate a dynamic 2D array in the main function int** dynamic2DArray = new int*[rows]; for (int i = 0; i < rows; ++i) dynamic2DArray[i] = new int[cols]; // Call the function to fill and print the dynamic 2D array fillDynamic2DArray(dynamic2DArray, rows, cols); // Deallocate the dynamic 2D array for (int i = 0; i < rows; ++i) delete[] dynamic2DArray[i]; delete[] dynamic2DArray; }

In diesem Beispiel nimmt die Funktion fillDynamic2DArray() ein dynamisch alloziertes 2D-Array als Eingabe (unter Verwendung des Typspezifizierers int**) zusammen mit dessen Dimensionen entgegen und füllt es mit Werten. Der Name des Arrays wird verwendet, um es als Argument zu übergeben.

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

Suggested prompts:

Can you show me an example of how to declare and use a dynamic array in C++?

How do I properly deallocate memory for dynamic arrays in C++?

What are the advantages and disadvantages of using dynamic arrays in C++?

Awesome!

Completion rate improved to 5

bookÜbergeben eines dynamischen Arrays als Argument der Funktion

Swipe um das Menü anzuzeigen

In C++ ist ein dynamisches Array ein Array, dessen Größe zur Laufzeit geändert werden kann. Im Gegensatz zu statischen Arrays, bei denen die Größe zur Kompilierzeit festgelegt ist, ermöglichen dynamische Arrays die Speicherzuweisung für das Array zur Laufzeit und eine Anpassung der Größe nach Bedarf.

Im Folgenden wird erläutert, wie 1-dimensionale und 2-dimensionale dynamische Arrays als Funktionsargumente übergeben werden können.

Übergabe eines 1-dimensionalen Arrays

In C++ kann ein 1-dimensionales dynamisches Array an eine Funktion übergeben werden, indem ein Zeiger auf das Array zusammen mit der Array-Größ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. Das Vorgehen ist wie folgt:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324252627
#include <iostream> // Function that takes a dynamic array and its size as parameters void processArray(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] << " "; // cout instead of std::cout std::cout << std::endl; // endl instead of std::endl } int main() { // Dynamic array allocation int size = 5; int* dynamicArray = new int[size]; // Initializing the dynamic array for (int i = 0; i < size; ++i) dynamicArray[i] = i * 2; // Passing the dynamic array to the function processArray(dynamicArray, size); // Deallocate the dynamic array to prevent memory leaks delete[] dynamicArray; }

In diesem Beispiel ist processArray() eine Funktion, die ein dynamisches Integer-Array (unter Verwendung des Typspezifizierers int*) und dessen Größe als Parameter übernimmt. Im main()-Funktion wird ein dynamisches Array der Größe 5 erstellt und initialisiert. Anschließend wird die Funktion processArray() aufgerufen, wobei das dynamische Array über seinen Namen und seine Größe als Argumente übergeben wird.

Übergabe eines 2-dimensionalen Arrays

Bei der Arbeit mit einem dynamischen 2-dimensionalen 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. So kann dies umgesetzt werden:

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526272829303132333435
#include <iostream> // Function to fill a dynamic 2D array with values void fillDynamic2DArray(int** arr, const int rows, const int cols) { // Fill the array with values (for demonstration purposes) for (int i = 0; i < rows; ++i) for (int j = 0; j < cols; ++j) arr[i][j] = i * cols + j; // You can modify this line to fill the array as desired // Print the filled array std::cout << "Filled Dynamic 2D Array:" << std::endl; 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; // Allocate a dynamic 2D array in the main function int** dynamic2DArray = new int*[rows]; for (int i = 0; i < rows; ++i) dynamic2DArray[i] = new int[cols]; // Call the function to fill and print the dynamic 2D array fillDynamic2DArray(dynamic2DArray, rows, cols); // Deallocate the dynamic 2D array for (int i = 0; i < rows; ++i) delete[] dynamic2DArray[i]; delete[] dynamic2DArray; }

In diesem Beispiel nimmt die Funktion fillDynamic2DArray() ein dynamisch alloziertes 2D-Array als Eingabe (unter Verwendung des Typspezifizierers int**) zusammen mit dessen Dimensionen entgegen und füllt es mit Werten. Der Name des Arrays wird verwendet, um es als Argument zu übergeben.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5
some-alt