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

  FORUM HardWare.fr
  Programmation
  C

  tableau en argument de fonction et pointeur de pointeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tableau en argument de fonction et pointeur de pointeur

n°1771301
Tipi470
Posté le 08-08-2008 à 15:48:26  profilanswer
 

Bonjour,
 
j'ai une fonction principale Fprinc qui a pour argument un tableau de 20 float par exemple.
 
Ce tableau est modifié par une autre fonction appelée à l'intérieur de ma fonction principale. Je veux avoir accès aux valeurs des éléments du tableau depuis un autre programme qui va appeler Fprinc.
On m'a expliqé au sujet des arguments d'une fonction que ce n'était pas la peine d'utiliser des pointeurs sur des arguments non modifiés, par contre, il faut que j'utilise des pointeurs lorsque je souhaite modifier une variable passée en argument d'une fonction. Et on m'a dit que dans le cas de tableaux, il fallait utiliser un pointeur de pointeur...  
 
est-ce que quelqu'un pourrait m'expliquer à quoi ça ressemble la syntaxe de pointeur de pointeur dans le cas d'un tableau à modifier, passé en argument d'une fonction ? entre les **, les *, les &, je suis perdue... aussi bien dans l'appel de la fonction, que dans la définition des sous fonctions, que dans l'affectation de nouvelles valeurs aux éléments du tableau.
 
Je précise que j'ai pas mal planché dessus... j'ai essayé des choses comme (**Tableau), avec ou sans parenthèses, avec ou sans la taille du tableau... je pense qu'il me faut surtout un exemple très concret, avec appel d'une fonction, sa définition, son prototype, qui pourrait me faire récupérer la valeur des éléments du tableau.
 
merci d'avance


Message édité par Tipi470 le 08-08-2008 à 16:04:33
mood
Publicité
Posté le 08-08-2008 à 15:48:26  profilanswer
 

n°1771305
Je@nb
Kindly give dime
Posté le 08-08-2008 à 16:11:50  profilanswer
 

Il te faudrait je pense commencer par lire un cours de C.

n°1771309
Tipi470
Posté le 08-08-2008 à 16:20:17  profilanswer
 

Je@nb a écrit :

Il te faudrait je pense commencer par lire un cours de C.


 
??? je ne pense pas que l'utilisation des pointeurs de pointeurs soient à ce point évidente... ce que j'avais codé au départ, c'est quelque chose comme ça:
 
void Fprinc ( float *Tableau )
{
    // ici j'appelle une fonction interne qui va faire des calculs sur mes éléments de tableau
    f_calc ( Tableau );
 }
 
void f_calc ( float *Tableau )
{
   for (i=0;i<Dim; i++) Tableau[i] = blalab;
}
 
ensuite, mon programme principal ressemblait à ça:
void F_Util ()
{
      float Tableau[Dim];
 
      Fprinc ( float Tableau[Dim] );
       
      // ici, faire un print des éléments du tableau montre qu'ils n'ont pas été affectés des valeurs données   dans f_calc
}
 
A ce stade, j'ai cru comprendre que justement, ce passage d'argument ne permettait pas de récupérer les valeurs du tableau. On m'a parlé des pointeurs de pointeurs, et après un grand nombre d'essai, je n'arrive pas à les mettre en oeuvre... maintenant, si ma question est excessivement conne, je veux bien qu'on me le dise. Merci d'avance

Message cité 1 fois
Message édité par Tipi470 le 08-08-2008 à 16:28:43
n°1771310
Je@nb
Kindly give dime
Posté le 08-08-2008 à 16:23:06  profilanswer
 

Un pointeur de pointeur n'est rien d'autre qu'un pointeur sur quelque chose (entre autre ici un pointeur). Si tu as compris les pointeurs tu comprends les pointeurs de pointeurs ou les pointeurs de pointeurs de pointeurs etc.
 
Si tu ne comprends pas, lis/prends un cours sur le C, tu trouveras toutes les infos dedans.

n°1771329
Joel F
Real men use unique_ptr
Posté le 08-08-2008 à 17:14:04  profilanswer
 

Tipi470 a écrit :


void F_Util ()
{
      float Tableau[Dim];
 
      Fprinc ( float Tableau[Dim] );
       
      // ici, faire un print des éléments du tableau montre qu'ils n'ont pas été affectés des valeurs données   dans f_calc
}


 
quadn je lis oui je pense que tu as droit de revoir ton cours de C

n°1771540
matafan
Posté le 09-08-2008 à 16:40:17  profilanswer
 

Passe directement ton tableau comme l'a montré Joel. Les tableaux sont toujours passés par référence, donc tu n'as rien de spécial à faire. Les seuls trucs qui sont passés pas valeur sont les types de base (int, long, double...) et les structures.

n°1771577
ptitchep
Posté le 09-08-2008 à 18:36:51  profilanswer
 

matafan a écrit :

Passe directement ton tableau comme l'a montré Joel. Les tableaux sont toujours passés par référence, donc tu n'as rien de spécial à faire. Les seuls trucs qui sont passés pas valeur sont les types de base (int, long, double...) et les structures.


TOUT est passé par valeur, quand c'est un pointeur, c'est la valeur du pointeur qui est passée, soit l'adresse du tableau pointé...


Message édité par ptitchep le 09-08-2008 à 18:38:01

---------------
deluser --remove-home ptitchep
n°1771622
matafan
Posté le 09-08-2008 à 22:37:13  profilanswer
 

Certes, mais je crois que tout le monde à compris ce que je voulais dire...

n°1771795
Tipi470
Posté le 11-08-2008 à 08:41:51  profilanswer
 

ok, merci.


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

  tableau en argument de fonction et pointeur de pointeur

 

Sujets relatifs
trier un tableau qui se trouve sur une autre feuilleChoix automatique de CSS en fonction de la résolution du visiteur
Chargement d'une animation flash en fonction de l'heure[C] Affichage d'un Tableau
[RESOLU]fonction mail qui ouvre messagerieextraction d'une chaine dans un tableau
[JavaScript] Faire retourner une fonction qui utilise XmlHttpRequestProbleme d'affichage de tableau 2d
Comment envoyer un tableau dynamique dans une autre table?Probleme avec la fonction unlink
Plus de sujets relatifs à : tableau en argument de fonction et pointeur de pointeur


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