Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Overførsel af dynamisk array som argument til funktionen | Function Arguments Specification
C++ Funktioner

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

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

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.

question mark

Hvilken er den korrekte måde at erklære en funktion, der modtager et dynamisk 1-dimensionelt heltalsarray?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 5
some-alt