Un tableau multidimentionnel comme parametre de fonction en c++

Contenu du snippet

Ce tutoriel est destiner à montrer les différentes façons de transmettre un tableau multidimensionnel à une fonction en c/c++...
Attention, les tableaux, et ce quelque soit la méthode d'appel, sont toujours transmis par référence (adresse mémoire) donc directement accessible et modifiable par la fonction...
Je vous laisse découvrir les différentes façon (la troisième étant la plus élégante)

Inspirée de Le Langage C++ par Bjarne Stroutrup

Source / Exemple :


//============================================================================
// Name        : test.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <string>
using namespace std;

void jepresumedetout(string m[3][5])
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            cout << m[i][j] << '\t';
        }
        cout << "\n";
    };
}

void jepresumedescolonnes(string m[][5], int x)
{
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            cout << m[i][j] << '\t';
        }
        cout << "\n";
    };
}

/**

  • void jenecompilepas(string m[][], int x, int y)
{ for (int i = 0; i < x; i++) { for (int j = 0; j < 5; j++) { cout << m[i][j] << '\t'; } cout << "\n"; }; }
  • /
void jenepresumederien(string* m, int x, int y) { for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { cout << m[i * y + j] << '\t'; } cout << "\n"; }; } int main() { string mtab[3][5] = { { "a", "b", "c", "d", "e" }, { "f", "g", "h", "i", "j" }, { "k", "l", "m", "n", "o" } }; cout << "!!!Je présume de tout!!!" << endl; // prints !!!Hello World!!! jepresumedetout(mtab); cout << "!!!Je présumes colonnes!!!" << endl; // prints !!!Hello World!!! jepresumedescolonnes(mtab,3); cout << "!!!Je ne présume de rien!!!" << endl; // prints !!!Hello World!!! jenepresumederien(&mtab[0][0], 3, 5); return 0; }

Conclusion :


Voilà j'espère aidé quelques débutants

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.