Fonction et tableau multidimensionnel

Résolu
Bonsoir, je programme en C++ et je me demandais juste si c'était normal qu'une fonction qui prend en paramètre un tableau multidimensionnel me demande la taille de celui-ci ??

Par exemple si je crée une fonction comme celle-ci :

void fonction(int tableau[][]);

J'ai une erreur de compilation... :\

Si quelqu'un aurais une idée je lui en serait très reconnaissant :) Merci d'avance.

3 réponses

  1. As-tu alloué de la mémoire pour y stocker tes données ?
    issu de l'exemple précedent :
      /* Allocation dynamique */
      t = new int* [ nLignes ];
      for (int i=0; i < nLignes; i++)
        t[i] = new int[ nColonnes ];

    3
    1. Merci pour tes réponses, mais je ne comprend pas tellement :(
      Est ce que tu pourrais m'écrire un petit code ou tu crée un tableau multidimensionnel, l'envoie a une fonction qui met par exemple le nombre 45 dans tableau[0][0] ?

      Merci d'avance.
      0
    2. Il faudrait, pour bien faire, effectuer dans la fonction un test de son initialisation...
      //code de principe, non testé
      void lafonction(int** paramTableau){
        //remplissage du tableau
        paramTableau[0][0] = 45;
      } 
      void main(){
        int** tableau; //Définition du tableau
        tableau = new int* [15] //contenant 15 tableaux de pointeur
        for (int i=0 ; i<15; i++) //pour chacun de ces sous-tableaux
          tableau[i]=new int [23]; //on initialise un tableau de 23 int
        // on a donc une grille de 15*23 int
        lafonction(tableau);  //qu'on passe à la fonction
      } 
      Encore un peu de doc sur les pointeurs et les tableaux : https://cpp.developpez.com/cours/cpp/?page=page_6
      0
    3. Merci Beaucoup Flashy Joe !!!
      Ça marche très bien.
      Résolu :p
      0
  2. Salut,
    il faut le déclarer en int**
    Un exemple par ici : https://fr.wikibooks.org/wiki/Programmation_C%2B%2B/Les_tableaux#Dynamiques

    Les tableaux dynamiques, même en une dimension, doivent de toute façon être déclarés en pointeur, les crochets ne sont utilisable (dans la déclaration) que pour les tableaux statiques = taille fixe.

    Bonne continuation.
    1
    1. Bonsoir Flachy joe,
      Merci pour votre réponse, jusque la tout marche bien mais lorsque je veux stocker un nombre dans mon tableau j'ai une erreur :\ Est ce que vous pourriez m'indiquer comment faire ?

      Merci et bonne soirée.
      0
  3. Nous, on a passé le chapitre sur les tableaux en cours de programmation , et je n'ai jamais entendu parler de tableau multidimensionnel...

    Alors soit ça n'existe pas, soit c'est moi qui me trompe.

    Pourriez-vous nous donner le code entier et l'erreur ? ça nous aiderait à comprendre...
    -1
    1. Merci ! :-)

      je me coucherais moins bête ce soir. ^^"
      0