Ü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
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
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.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen