Fonction et tableau multidimensionnel

Résolu
elcactus75 Messages postés 41 Statut Membre -  
elcactus75 Messages postés 41 Statut Membre -
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. Flachy Joe Messages postés 2303 Statut Membre 261
     
    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. elcactus75 Messages postés 41 Statut Membre
       
      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. Flachy Joe Messages postés 2303 Statut Membre 261
       
      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. elcactus75 Messages postés 41 Statut Membre
       
      Merci Beaucoup Flashy Joe !!!
      Ça marche très bien.
      Résolu :p
      0
  2. Flachy Joe Messages postés 2303 Statut Membre 261
     
    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. elcactus75 Messages postés 41 Statut Membre
       
      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. Le Dodo Messages postés 2307 Date d'inscription   Statut Membre Dernière intervention   247
     
    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. Le Dodo Messages postés 2307 Date d'inscription   Statut Membre Dernière intervention   247
       
      Merci ! :-)

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