Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Passage d'un tableau dynamique comme argument de la fonction | Spécification des Arguments de Fonction
Fonctions C++

Passage d'un tableau dynamique comme argument de la fonction

Glissez pour afficher le menu

Passage d'un tableau à une dimension

Il est possible de passer un tableau dynamique à une dimension à une fonction en transmettant un pointeur vers le tableau ainsi que la taille du tableau en tant que paramètre séparé. Comme les tableaux se transforment en pointeurs lorsqu'ils sont passés à des fonctions, il suffit de passer un pointeur vers le premier élément du tableau. Voici comment procéder :

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

La fonction processArray() prend en paramètres un tableau dynamique d'entiers (int*) et sa taille. Dans main(), un tableau dynamique de taille 5 est créé, initialisé, puis passé à la fonction en utilisant son nom et sa taille.

Passage d'un tableau à deux dimensions

Lorsqu'on travaille avec un tableau dynamique à deux dimensions (un tableau de pointeurs où chaque pointeur pointe vers un tableau d'éléments), il est possible de le passer comme pointeur vers un pointeur accompagné des dimensions à une fonction.

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

La fonction process() prend en paramètres un tableau 2D alloué dynamiquement (int**) et ses dimensions, puis le remplit avec des valeurs. Le tableau est passé à la fonction en utilisant son nom.

question mark

Quelle est la bonne manière de déclarer une fonction qui accepte un tableau dynamique d'entiers à une dimension ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 2. Chapitre 5
some-alt