Overførsel af dynamisk array som argument til funktionen
Stryg for at vise menuen
Overførsel af 1-dimensionelt array
Du kan overføre et 1-dimensionelt dynamisk array til en funktion ved at sende en pointer til arrayet sammen med arrayets størrelse som en separat parameter. Da arrays nedbrydes til pointers, når de sendes til funktioner, kan du sende en pointer til det første element i arrayet. Sådan 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() modtager et dynamisk heltalsarray (int*) og dets størrelse som parametre.
I main() oprettes et dynamisk array af størrelse 5, initialiseres og sendes til funktionen ved hjælp af dets navn og størrelse.
Overførsel af 2-dimensionelt array
Ved håndtering af et dynamisk 2-dimensionelt array (et array af pointere, hvor hver pointer peger på et array af elementer), kan det overføres som en pointer til en pointer sammen med dimensionerne til 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() modtager et dynamisk allokeret 2D-array (int**) og dets dimensioner som parametre og udfylder det derefter med værdier.
Arrayet overføres til funktionen ved brug af dets navn.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat