Fonction et tableau multidimensionnel

Résolu/Fermé
elcactus75 Messages postés 34 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 15 juin 2013 - Modifié par elcactus75 le 10/12/2012 à 21:23
elcactus75 Messages postés 34 Date d'inscription mardi 27 novembre 2012 Statut Membre Dernière intervention 15 juin 2013 - 13 déc. 2012 à 19:30
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 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
11 déc. 2012 à 19:19
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 mardi 27 novembre 2012 Statut Membre Dernière intervention 15 juin 2013
12 déc. 2012 à 11:19
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 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
12 déc. 2012 à 22:53
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 mardi 27 novembre 2012 Statut Membre Dernière intervention 15 juin 2013
13 déc. 2012 à 19:30
Merci Beaucoup Flashy Joe !!!
Ça marche très bien.
Résolu :p
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
10 déc. 2012 à 22:15
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 mardi 27 novembre 2012 Statut Membre Dernière intervention 15 juin 2013
11 déc. 2012 à 18:11
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 1932 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 244
10 déc. 2012 à 21:29
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 mardi 27 novembre 2012 Statut Membre Dernière intervention 15 juin 2013
11 déc. 2012 à 17:54
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 1932 Date d'inscription jeudi 10 mars 2011 Statut Membre Dernière intervention 27 août 2013 244
Modifié par Le Dodo le 13/12/2012 à 16:29
Merci ! :-)

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