Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1745 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C] Comment passer des matrices par adresse??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Comment passer des matrices par adresse??

n°331405
*LighTninG​*
Posté le 12-03-2003 à 22:23:30  profilanswer
 

Salut !
 
Voila mon problème:
Je déclare une matrice dans mon main, je met ses coefs à 0, puis je la fait passer dans une fonction qui va modifier cette matrice, par une égalité avec une autre matrice:
 

Code :
  1. int **fonction(int **matrice_fontion)
  2. {
  3. int i,j;
  4. for (i=0;i<hauteur;i++)
  5.     for (j=0;j<largeur;j++)
  6. matrice_fonction[i][j]=5;
  7. return(fonction);


 
Puis dans une autre fonction j'ai ceci:

Code :
  1. void modifie_mat(int **matrice)
  2. {
  3. matrice=fonction(matrice);
  4. //les valeurs ici sont bien modifiés dans la matrice
  5. }
  6. main()
  7. {
  8. int ** matrice
  9. //initilisation à 0 etc..
  10. //puis:
  11. modifie_mat(matrice);
  12. //une fois revenu dans le main les coefs sont toujours à 0 !
  13. }


 
donc comment passer la matrice par adresse afin que ses coefs soient modifiées? je sais le faire avec des int, des chars... ,
mais pas avec des matrices.


Message édité par *LighTninG* le 13-03-2003 à 15:37:27
mood
Publicité
Posté le 12-03-2003 à 22:23:30  profilanswer
 

n°332691
Captain ad​-hoc
miam les bon batonnets de tux
Posté le 13-03-2003 à 23:13:24  profilanswer
 

j'ai du mal a croire que ton programme compile sans warnings: return(fonction) ça renvoie un pointeur sur ta fonction, il faut mettre matrice_fonction. Après ça devrait marcher, les tableaux sont toujours passés par adresse en C

n°333955
Deaddy
Posté le 15-03-2003 à 01:51:31  profilanswer
 

effectivement, return(fonction) ca risque pas de marcher;
 
return(matrice_function) est mieux mais inutile
 
void fonction(** m)
{

n°333974
Taz
bisounours-codeur
Posté le 15-03-2003 à 09:36:45  profilanswer
 

j'espère que t'oublie pas de faire de l'allocation. de plus [][] ne marche pas avec un **ptr, ce qui est logique.
si tuv eux faire une fonction qui modifie ta matrice, est bien rajoute une indirection de façon a modifié directement le pointeur passé par paramètre.
 
de plus le type de retour des fonctions doit etre explicit.
 
void pour main, ou int si tu veux etre conforme à la norme C99

n°334683
*LighTninG​*
Posté le 16-03-2003 à 22:06:43  profilanswer
 

Merki pour vos réponses, mais sinon c'était une erreur de ma part lorsque j'ai écrit le post, dans mon programme j'ai bien mis return(matrice_fonction) :)

n°334755
bjone
Insert booze to continue
Posté le 16-03-2003 à 23:27:03  profilanswer
 

soit j'ai bu, soit ce que tu manipules c'est un pointeur sur un tableau de pointeur :/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C] Comment passer des matrices par adresse??

 

Sujets relatifs
Passer d'un fichier XML à MySQLcomment passer un feuille excel au premier plan parmi les app windows
Avoir un favicon avec une adresse "Ulimit" ????passer une méthode en paramètre ?
[ PHP ] passer un jpg en noir et blanc[PHP]Passer un tableau en parametre à l'URL
[Borland C++ Builder 6] Déclarer BD Access, sans passer par l'ODBC Win[PHP] récupérer l'adresse de la page actuelle
[C++ - Kylix] Faire un lien vers un site Internet / une adresse e-mailéquivalent de "&" dans la barre d'adresse
Plus de sujets relatifs à : [C] Comment passer des matrices par adresse??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR