J'arrive pas a passer une Matrice a une fct

Résolu/Fermé
Dami - 12 déc. 2007 à 17:23
 Damoi - 15 janv. 2008 à 20:04
Bonjour,
j'arrive pas a passer une Matrice à une fct dans un proramme C++ ,klk'1 peut me faire un exemple d'un passage d'1e MATRICE a une fonction merçi d'avance :)
A voir également:

11 réponses

Hello !

Ben, par exemple, pour passer une matrice d'entiers, tu fais ainsi:


void ma_fonction(int** mon_param){
  // ce qu'il y a à faire
}


Puis, pour l'appeler:

...
    int** ma_matrice;
    // initialisations ici
    mafonction(ma_matrice);
...
0
belhauss Messages postés 69 Date d'inscription dimanche 24 décembre 2006 Statut Membre Dernière intervention 9 février 2012 3
15 déc. 2007 à 23:55
Hello!
et pour la taille de matrice ??on la met où ???
par exemple
int Matrice [Maxli][Maxco];
0
Ben tu la calcules dans ta fonction...
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 déc. 2007 à 14:36
En C++, je te conseil de faire un objet matrice et de le passer:
class Matrice{//def};
void ma_fonciton(Matrice & a){//la fonciton}
sinon, avec la méthode de tde, il faut faire :
void ma_fonction(int** a,int m, int n);//pour une matrice de taille m sur n
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wé la méthode de tde marche pas tjrs (parfois elle me donne des valeurs stockées dans la RAM genre de 256 ,-15385, 2548 ... qu'on ne peut pas la madifier ya t-il une autre méthode ou bien il me manque un ptit détqil wa Help please
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
3 janv. 2008 à 10:06
as tu bien fait toute les allocations mémoires nécessaire ?
en C++, je te conseil vraiment de passer par des objet, c'est plus simple
0
s'il te plaît rapele moi comment on alloue du l'espace mémoire pour une matrice ?:(
*matrice = new int [nmbrline*nmbrcolon]; esk c'est just cette méthode ???????
sinon :$ corigez la moi merçi en tt cas
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
10 janv. 2008 à 09:11
J'ai du mal avec les allocation mémoire, mais je dirai :
matrice = new int*[dim1];
for(int i=0;i<dim1;i++)
matrice[i]=new int[dim2];

et ne pas oublier de TOUT libérer à la fin.
0
:-o merçi bcp :D just une ptite et peut étre la dernier question ben j'esper:)
ma matrice est déclaré comme suivant
int **mat;
cette allocation fonctionera??
car il me donne tjjrs "abnormal program termination"
matrice = new int*[dim1];
for(int i=0;i<dim1;i++)
matrice[i]=new int[dim2];
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
11 janv. 2008 à 08:44
je n'ai pas testé l'allocation, mais si elle compile, elle devrai fonctionner.
Il interviens où ton problème ?
Si tu veux voir un exemple d'un type matrice que j'ai fait regarde là:
http://mapage.noos.fr/julien.lamome/prog/matriceV5.h
selon ce que tu veux faire ça pourrai te simplifier la tâche.
0
merçi snipeur pour tt :)
0