Les fonctions

Fermé
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 - 2 sept. 2014 à 20:32
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 2 sept. 2014 à 23:50
Bonjour à tous.
J'ai une fonction qui divise une matrice de dimension puissance de 2 en plusieurs blocs.Par exemple si j'applique cette fonction à une matrice de dimension 8,cette dernière donnera 4 blocs de dimension 4.
Le premier de coordonnées (i=0,j=0) le 2 ème (O,4) le 3ème (4,0) et le dernier (4,4) .
Cette fonction doit être appliquée sur chaque bloc tant que sa dimension n'a pas encore atteinte 2 . Ma fonction est de type void et elle a les arguments suivants
divise_mat( double M, int n, double M1, double M2 , double M3 , double M4 )
==>M c'est la matrice initiale , n sa dimension M1 M2 M3 et M4 sont les blocs générés.

Ma question est la suivante : Si après avoir appliqué cette fonction sur la matrice initiale , je l'applique ensuite sur M1, est-ce que les blocs M1 M2 M3 et M4 de la matrice initiale seront écrasés et remplacés par les sous blocs du bloc M1 ??

J'attends avec impatience votre réponse.

4 réponses

thomascre Messages postés 445 Date d'inscription vendredi 21 octobre 2011 Statut Membre Dernière intervention 8 octobre 2017 38
2 sept. 2014 à 20:34
je ne pensse pas, si tu traite tout en méme temps avec des variable diferente (se qui est le cas) sa devrai theoriquement etre bon, apret il ya un bon moyen de savoir : les testes ;)
0
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 3
2 sept. 2014 à 21:41
Mercii :)
0
Danelectro Messages postés 1723 Date d'inscription samedi 25 février 2012 Statut Membre Dernière intervention 29 mars 2018 369
2 sept. 2014 à 21:46
Comme l'a dit thomascre tu testes.
Après tout dépend si tu passes tes paramètres par référence ou par valeur. Si tu veux que ta fonction modifie ta matrice de base il faut lui donner un pointeur.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
2 sept. 2014 à 23:48
Ce n'est pas possible d'envoyer des références en argument (pointeur ou valeur).
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
2 sept. 2014 à 23:50
Bonjour,

Ce n'est pas possible d'envoyer des matrices (tableau 2D) en paramètre d'une fonction. Tu envoies en fait un pointeur sur le premier élément.
Donc fatalement, toutes les valeurs modifiées dans les matrices sont répercutées dans la fonction appelante.
Donc pour répondre à ta question, oui ;-).

Cdlt,
0