Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Dynamische Array als Argument van de Functie Doorgeven | Specificatie van Functieargumenten
C++-Functies

Dynamische Array als Argument van de Functie Doorgeven

Veeg om het menu te tonen

Een-dimensionale array doorgeven

Een één-dimensionale dynamische array kan aan een functie worden doorgegeven door een pointer naar de array samen met de arraygrootte als een aparte parameter te geven. Omdat arrays degraderen tot pointers wanneer ze aan functies worden doorgegeven, kun je een pointer naar het eerste element van de array doorgeven. Dit is hoe het werkt:

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

De functie processArray() neemt een dynamische integer-array (int*) en de grootte ervan als parameters. In main() wordt een dynamische array van grootte 5 aangemaakt, geïnitialiseerd en doorgegeven aan de functie met de naam van de array en de grootte.

Doorgeven van een tweedimensionale array

Bij het werken met een dynamische tweedimensionale array (een array van pointers waarbij elke pointer naar een array van elementen wijst), kun je deze als een pointer naar een pointer samen met de afmetingen aan een functie doorgeven.

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

De functie process() neemt een dynamisch gealloceerde 2D-array (int**) en de afmetingen als parameters, en vult deze vervolgens met waarden. De array wordt aan de functie doorgegeven met behulp van zijn naam.

question mark

Wat is de juiste manier om een functie te declareren die een dynamische 1-dimensionale integer-array accepteert?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 2. Hoofdstuk 5
some-alt