Menu
CoddyTech

Tableaux et fonctions

Fait partie de la section Fondamentaux du Journey C++ de Coddy. Leçon 62 sur 74.

Les tableaux ne peuvent pas être transmis directement aux fonctions en tant que tableaux complets. Lorsque vous essayez de transmettre un tableau à une fonction, il « décroît » en un pointeur vers son premier élément.

Par exemple :

int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
	int size = std::size(arr);
}

std::size(arr) ne compile pas ici, car arr est en réalité un pointeur, et un pointeur ne stocke pas la taille du tableau. Les pointeurs seront étudiés dans le prochain cours.

C’est pourquoi, lorsque nous transmettons des tableaux à des fonctions, nous devons généralement transmettre la taille en tant que paramètre distinct :

void processArray(int arr[], int size) {
    // Nous pouvons maintenant manipuler le tableau en toute sécurité à l’aide du paramètre size
}

Voici comment appeler la fonction :

int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);

De plus, il n’est pas possible de retourner un tableau dans une fonction :

int[] processArray(int arr[]) {
	return arr;
}

Ceci est illégal. À la place, tu devrais utiliser la syntaxe * :

int* processArray(int arr[]) {
	return arr;
}
int* newArr = processArray(arr);

La syntaxe de l’astérisque (*) fait référence aux pointeurs, qui seront abordés dans le prochain cours.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur C++ en ligne