Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Comment passer des tableaux aux fonctions en C++ : Guide pratique

Comment passer des tableaux aux fonctions en C++

Ce guide explique comment passer des tableaux uni- et multi-dimensionnels aux fonctions en C++ en utilisant de vrais exemples de code.

En C++, les tableaux peuvent être fournis comme arguments de fonction, et vous pouvez même les retourner indirectement via des pointeurs. Comprendre la mécanique derrière la dégradation des tableaux en pointeurs et l'impact sur la mémoire et la performance est essentiel pour écrire du code efficace.


Syntaxe pour passer des tableaux comme paramètres de fonction

La déclaration pour une fonction qui accepte un tableau ressemble à ceci :

typeRetour nomFonction(typeDonnees nomTableau[tailleTableau]) {
    // corps de la fonction
}

Exemple :

int total(int notes[5]) {
    // implémentation
}

Ici, notes est un tableau int de cinq éléments. Quand la fonction est appelée, seul le nom du tableau (un pointeur vers son premier élément) est passé.


Exemple 1 : Passage d'un tableau unidimensionnel à une fonction

#include <iostream>
using namespace std;
// Déclarer la fonction pour afficher les notes
void afficher(int m[5]) {
    cout << "Affichage des notes:" << endl;
    for (int i = 0; i < 5; ++i) {
        cout << "Étudiant " << i + 1 << ": " << m[i] << endl;
    }
}
int main() {
    int notes[5] = {88, 76, 90, 61, 69};
    afficher(notes); // Passer le tableau par son nom
    return 0;
}

Sortie

Affichage des notes:
Étudiant 1: 88
Étudiant 2: 76
Étudiant 3: 90
Étudiant 4: 61
Étudiant 5: 69

Points clés :

  1. L'appel afficher(notes); passe l'adresse de notes[0].
  2. À l'intérieur de la fonction, int m[5] est traité comme int* m;, pointant vers la même mémoire.
  3. Modifier m[i] change le tableau original notes, illustrant la sémantique de passage par référence.

Passage d'un tableau multidimensionnel à une fonction

Pour les tableaux 2-D, vous devez spécifier le nombre de colonnes (la taille de la seconde dimension) pour que le compilateur puisse calculer les décalages d'éléments.

Exemple 2 : Passage d'un tableau bidimensionnel à une fonction

#include <iostream>
using namespace std;
void afficher(int n[][2]) {
    cout << "Affichage des valeurs:" << endl;
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 2; ++j) {
            cout << "num[" << i << "][" << j << "]: " << n[i][j] << endl;
        }
    }
}
int main() {
    int num[3][2] = {{3, 4}, {9, 5}, {7, 1}};
    afficher(num);
    return 0;
}

Sortie

Affichage des valeurs:
num[0][0]: 3
num[0][1]: 4
num[1][0]: 9
num[1][1]: 5
num[2][0]: 7
num[2][1]: 1

Notes :

Les tableaux de dimensions supérieures suivent la même règle : la taille de toutes les dimensions sauf la première doit être spécifiée.


Retourner un tableau depuis une fonction

Les fonctions ne peuvent pas retourner un tableau entier directement. Au lieu de cela, elles retournent un pointeur vers le premier élément, qui peut faire référence à un tableau alloué statiquement, un tableau dynamique, ou un objet temporaire. Il faut faire attention d'éviter de retourner des pointeurs vers des tableaux locaux (pile), ce qui résulterait en références pendantes.

Exemple (tableau statique) :

int* obtenirTableau() {
    static int arr[5] = {1, 2, 3, 4, 5};
    return arr; // pointeur vers le premier élément
}

Pour l'allocation dynamique, considérez retourner un std::vector<T> pour la sécurité et la gestion automatique de la mémoire.

Une lecture approfondie sur la gestion sûre des tableaux en C++ est recommandée pour le code de production.

Langue C

  1. Maîtriser les tableaux en escalier C# : Déclaration, initialisation et accès
  2. Maîtriser les opérateurs C++ : Guide complet avec exemples pratiques
  3. Fonctions amies et classes amies en C++ : Maîtriser le contrôle d'accès
  4. Maîtriser les opérateurs en programmation C : Guide complet
  5. Les tableaux en C++ : Déclaration, initialisation et techniques avec pointeurs
  6. Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code
  7. Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
  8. Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques
  9. Maîtriser la programmation C : Tutoriel complet pour débutants