Fonction et tableau multidimensionnel

Résolu
elcactus75 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
elcactus75 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   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
elcactus75 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   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
elcactus75 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Beaucoup Flashy Joe !!!
Ça marche très bien.
Résolu :p
0
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   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
elcactus75 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Dodo Messages postés 1934 Date d'inscription   Statut Membre Dernière intervention   246
 
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
elcactus75 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Le Dodo,
Vous pouvez trouvez un cours sur les tableau multidimensionnel juste la : https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c
0
Le Dodo Messages postés 1934 Date d'inscription   Statut Membre Dernière intervention   246
 
Merci ! :-)

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