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

  FORUM HardWare.fr
  Programmation

  Comment faire modifier par une fonction 1 tableau de structure ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment faire modifier par une fonction 1 tableau de structure ?

n°9526
nrv_from_c​nr
Posté le 14-01-2001 à 02:04:36  profilanswer
 

J'ai une structure "Joue", composée de deux entiers :
int Rouge;
int Jaune;
J'ai un tableau, tab_jeu, à deux dimension, 7 et 6.
Or ce tableau est un tableau de structure :
Joue tab_jeu[7][6];
Comment puis-je faire pour appeler une fonction qui va le modifier, et non en modifier une copie ?
 
Exemple :
Si j'apelle Modif(tab_jeu) et que je lui fait modifier "tab_jeu" (le tableau de structure), les modifs ne portent pas sur l' "original" ...ss
 
Merci d'avance...
Nrv :-)

mood
Publicité
Posté le 14-01-2001 à 02:04:36  profilanswer
 

n°9527
JBM
Posté le 14-01-2001 à 02:11:43  profilanswer
 

Euh, ça fait longtemps que je n'ai plus fait de C mais pour passer par référence, c'est pas quelque chose du genre :
Modif(&tab_jeu) :confused:

n°9528
nrv_from_c​nr
Posté le 14-01-2001 à 02:15:27  profilanswer
 

Merci pour la réponse aussi rapide.
Non, ce paramettre est valable dans le cas d'un "int", d'un "float" ou ...
Mais pas pour un tableau, hélas encore moins pour un tableau à plusieurs dimensions...
Pour un tableau de structure à plusieurs dimensions, ... :-)
Merci tout de même, mais Visual C++ est formel :-)
Nrv

n°9529
JBM
Posté le 14-01-2001 à 02:21:51  profilanswer
 

T'es sûr que ça ne marche pas :confused:
Je viens de vérifier dans mes vieux programmes et ça a l'air de fonctionner avec n'importe quel type...
 
Vérifie la syntaxe du prototype de ta fonction Modif, il faut aussi lui rajouter le & je pense.

n°9530
JBM
Posté le 14-01-2001 à 02:27:51  profilanswer
 

Nan attends,
C'est pas à l'appel de la fonction qu'il faut le mettre mais uniquement dans la déclaration de celle ci.
Ca devrait être quelquechose comme "Modif (Joue[][] &tab_jeu)"

n°9531
nrv_from_c​nr
Posté le 14-01-2001 à 02:29:12  profilanswer
 

A la déclaration : il faut mettre des "&" ou des "*" ?ss
* : ce qui est désigné par une adresse
& : adresse dess
Dans le proto, je met quoi ?
Dans le Mes_Fonctions.cpp, je met quoi pour la définission de Modif ?
Et à l'appel, je prends quoi comme syntaxe ?
Merci beaucoup !
Nrv

n°9532
nrv_from_c​nr
Posté le 14-01-2001 à 02:37:48  profilanswer
 

Attends, c'est pas du genre :
Modif(Joue tab_jeu[7][6])
Pour un tableau de 2 dim, on doit déclarer les dims.
Et c'est le tab qui est de 7*6. Mais mon compileur refuse systématiquement... Tu es sur de toi ?ss
Dans ce cas, je met quoi dans :
- le proto ?
- la définition (première ligne = celle du proto ?)
- l'appel ?
Merci beaucoup en tout cas de te donner ce mal à cette heure ...
Nrv :-)

n°9533
JBM
Posté le 14-01-2001 à 02:37:49  profilanswer
 

Pour résumer, d'après mes vieux souvenirs, je mettrais :
 
- pour la déclaration : Modif (Joue[][] &tab_jeu)
- à l'appel Modif(tab_jeu)
 
Mais je n'en suis pas du tout sûr :rolleyes:

n°9534
nrv_from_c​nr
Posté le 14-01-2001 à 02:39:14  profilanswer
 

Attends, c'est pas du genre :
Modif(Joue tab_jeu[7][6])
Pour un tableau de 2 dim, on doit déclarer les dims.
Et c'est le tab qui est de 7*6. Mais mon compileur refuse systématiquement... Tu es sur de toi ?ss
Dans ce cas, je met quoi dans :
- le proto ?
- la définition (première ligne = celle du proto ?)
- l'appel ?
Merci beaucoup en tout cas de te donner ce mal à cette heure ...
Nrv :-)

n°9535
JBM
Posté le 14-01-2001 à 02:40:03  profilanswer
 

Attends, je pense pouvoir trouver un exemple de passage par référence de tableau dans mes TPs. Je cherche ça tout de suite ...

mood
Publicité
Posté le 14-01-2001 à 02:40:03  profilanswer
 

n°9536
nrv_from_c​nr
Posté le 14-01-2001 à 02:40:32  profilanswer
 

Merde, je veux dire :
Modif(Joue &tab_jeu[7][6])
Et dans la définition de la fonction, je met des "&" partout ou je parle de "tab_jeu" ou pas ?
Merci !
Nrv

n°9537
nrv_from_c​nr
Posté le 14-01-2001 à 02:40:59  profilanswer
 

Merci pour la recherche.
Vraiment.
Nrv

n°9538
verdoux
And I'm still waiting
Posté le 14-01-2001 à 02:43:46  profilanswer
 

Le proto est:
void modif(Joue tab[][6])
ou
void modif(Joue (*tab)[6])
 
Et l'appel:
modif(tab_jeu);

n°9539
nrv_from_c​nr
Posté le 14-01-2001 à 02:58:01  profilanswer
 

Alors y'a une erreur dans mon code, quelque part...
Décidément ça veut pas marcher. Imagine un puissance 4 qui garde en mémoire qu'un pion :-)
Merde ...
Je programme en C++, ça fait aucune différence ?
Nrv

n°9540
JBM
Posté le 14-01-2001 à 02:58:13  profilanswer
 

Bah, c'est encore Verdoux qui a raison on dirait :D
 
J'ai pas retrouvé d'exemple mais il me semble qu'un tableau n'est jamais passé par copie mais toujours par référence de toutes façons. Ca servait à rien d'aller chercher une syntaxe compliquée ;)

n°9541
nrv_from_c​nr
Posté le 14-01-2001 à 03:04:12  profilanswer
 

Bon Ok ...
Alors c'est une de mes fonction qui déconne, je m'y remet :-)
Merci beaucoup pour ton aide précieuse ! Et unique, surtout à cette heure !
A+ et merci encore, Nrv :-)
 
PS : à la lecture de mes cours, finalement ce n'est pas si étonnant mais il faut avoir l'idée en tête pour sentir que le cours peut éventuellement vouloir dire ça ... :-) :-)


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

  Comment faire modifier par une fonction 1 tableau de structure ?

 

Sujets relatifs
[ php] Existe-t-il un fonction pour compter le nombre de caractere ?? 
Plus de sujets relatifs à : Comment faire modifier par une fonction 1 tableau de structure ?


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