| View previous topic :: View next topic |
| Author |
Message |
J?r?me Guest
|
Posted: Mon May 30, 2005 8:58 pm Post subject: Passage de matrice en parametre d'une foction |
|
|
Salut!
Je voudrais passer une matrice carrée de taille variable à une
fonction. Comment dois-je m'y prendre?
ex
f(int **mat, int dim)
{
blah blah
}
int main()
{
int mat[6][6];
f(mat,6);
}
le problème c'est que g++ ne reconnait pas ma matrice comme un int
**?!
[email]je.c (AT) laposte (DOT) net[/email]
Si vous avez une idée?
|
|
| Back to top |
|
 |
Falk Tannhäuser Guest
|
Posted: Mon May 30, 2005 9:36 pm Post subject: Re: Passage de matrice en parametre d'une foction |
|
|
J?r?me wrote:
| Quote: | Salut!
Je voudrais passer une matrice carrée de taille variable à une
fonction. Comment dois-je m'y prendre?
|
template<typename T, unsigned M, unsigned N>
void f(T (&mat)[M][N])
{
// ...
}
int main()
{
int mat[6][6];
f(mat);
return 0;
}
Sinon il vaut peut-être mieux écrire une classe "Matrix".
Falk
|
|
| Back to top |
|
 |
Jérôme Guest
|
Posted: Mon May 30, 2005 10:36 pm Post subject: Re: Passage de matrice en parametre d'une foction |
|
|
OK merci beaucoup j'ai créé un classe matrice comme tu me l'as
conseillé c'est encore plus simple!
|
|
| Back to top |
|
 |
Horst Kraemer Guest
|
Posted: Mon May 30, 2005 10:47 pm Post subject: Re: Passage de matrice en parametre d'une foction |
|
|
[email]partirensemble (AT) gmail (DOT) com[/email] (J?r?me) wrote:
| Quote: | Salut!
Je voudrais passer une matrice carrée de taille variable à une
fonction. Comment dois-je m'y prendre?
ex
f(int **mat, int dim)
{
blah blah
}
int main()
{
int mat[6][6];
f(mat,6);
}
le problème c'est que g++ ne reconnait pas ma matrice comme un int
**?!
|
Les types int ** et int [n][n] (int (*) [n]) n'ont aucune relation
entre eux.
Solution laide
void f(int *mat, int dim)
{
/*
au lieu de mat[i][j] il faut écrire
mat[i*dim+j]
*/
}
f((int*)mat,6);
--
Horst
--
Lâche pas la patate!
|
|
| Back to top |
|
 |
|