maboush
Messages postés3Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention 3 avril 2007
-
3 avril 2007 à 15:07
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
4 avril 2007 à 09:38
Bonjour à tous,
Est ce que quelqu'un pourrais me monter un exemple d'une fonction qui retourne une matrice( une matrice de double par exemple ) et si elle sera de taille indeterminée c'est ce que je cherche.
merci d'avance pour celui ou celle qui s'engage à m'aider et pardon si c une kestion idiote ,en fete je suis pas en fillière informatique mais je m'en sert pour des calculs en électronique.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:06
Salut:
double ** fonction (int n, int m) {
double ** array = new double * [n];
for (int i = 0; i < n; ++i)
array [i] = new double [m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; ++j)
array [i][j] = 0.0d;
}
double ** d = fonction (4, 4);
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 3 avril 2007 à 20:09
Salut:
Sans oublier le return array à la fin de la fonction.
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 3 avril 2007 à 23:24
Ce que tu veux donc, c'est un allocateur de pointeurs de pointeurs en C (car le thème est bien dans la section C) ? Ce que propose O.D. est en C++ (les new). Évidament, on aurait aucun problème à viré tout ça en C standard mais il existe une méthode beaucoup plus rapide que d'allouer séparément la mémoire pour chaque pointeur:
http://www.codyx.org/snippet_allocateur-pointeur-pointeurs_293.aspx
Simple à utiliser. Disons que tu désire 4 pointeurs contenant chacun 25 double:
double **pp = (double**)malloc2d(4, 25*sizeof(double));
Quand tu as terminé, un simple free suffis pour effacer toute la mémoire:
free(pp);
C++ (@++)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 4 avril 2007 à 09:38
Salut:
Surtout il ne faut pas oublier de libérer l'espace mémoire réservé.
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts