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
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
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.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår