Skicka dynamisk array som argument till funktionen
Svep för att visa menyn
Skicka en endimensionell array
Du kan skicka en endimensionell dynamisk array till en funktion genom att skicka en pekare till arrayen tillsammans med arrayens storlek som en separat parameter. Eftersom arrayer omvandlas till pekare när de skickas till funktioner, kan du skicka en pekare till det första elementet i arrayen. Så här gör du:
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; }
Funktionen processArray() tar en dynamisk heltalsarray (int*) och dess storlek som parametrar.
I main() skapas en dynamisk array av storlek 5, initieras och skickas till funktionen med dess namn och storlek.
Skicka tvådimensionell array
Vid hantering av en dynamisk tvådimensionell array (en array av pekare där varje pekare pekar på en array av element), kan du skicka den som en pekare till en pekare tillsammans med dimensionerna till en funktion.
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; }
Funktionen process() tar en dynamiskt allokerad 2D-array (int**) och dess dimensioner som parametrar, och fyller sedan arrayen med värden.
Arrayen skickas till funktionen med sitt namn.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal