Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Overføring av dynamisk array som argument til funksjonen | Function Arguments Specification
C++-Funksjoner

Overføring av dynamisk array som argument til funksjonen

Sveip for å vise menyen

Overføring av endimensjonal tabell

Du kan sende en endimensjonal dynamisk tabell til en funksjon ved å sende en peker til tabellen sammen med tabellens størrelse som en egen parameter. Siden tabeller omdannes til pekere når de sendes til funksjoner, kan du sende en peker til det første elementet i tabellen. Slik gjør du det:

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; }

Funksjonen processArray() tar en dynamisk heltallstabell (int*) og dens størrelse som parametere. I main() opprettes en dynamisk tabell med størrelse 5, initialiseres og sendes til funksjonen ved å bruke navnet og størrelsen.

Overføring av todimensjonalt array

Ved håndtering av et dynamisk todimensjonalt array (et array av pekere hvor hver peker peker til et array av elementer), kan du sende det som en peker til en peker sammen med dimensjonene til en funksjon.

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; }

Funksjonen process() tar et dynamisk allokert 2D-array (int**) og dets dimensjoner som parametere, og fyller det deretter med verdier. Arrayet sendes til funksjonen ved å bruke navnet.

question mark

Hva er riktig måte å deklarere en funksjon som tar imot et dynamisk 1-dimensjonalt heltallsarray?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 2. Kapittel 5
some-alt