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

  FORUM HardWare.fr
  Programmation
  C

  A Propos des passages de paramètre...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

A Propos des passages de paramètre...

n°519795
neo9205
Posté le 21-09-2003 à 17:42:00  profilanswer
 

Pourquoi dans le prototype de certaines fonctions, on met un pointeur de pointeur du style ci-dessous, tout ça pour passer un pointeur ??  
 
Ne pourrait-on pas simplifier cela en passant un pointeur en paramètre à un autre pointeur ???
 

Code :
  1. void fonction(liste **p);


liste est un typedef : typedef struct list list;
Element à passer en paramètre : liste *l;

mood
Publicité
Posté le 21-09-2003 à 17:42:00  profilanswer
 

n°519821
Taz
bisounours-codeur
Posté le 21-09-2003 à 17:51:41  profilanswer
 

comment tu ferais pour :
 - passer un pointeur sur un pointeur ?
 - passer en paramètre un « tableau » de pointeurs ?
 
 
sauf cas précis, chachez la nature pointeuresque d'un type, surtout si on dispose de struct machin, c'est à dire définir pmachin, c'est très laid, on ne compte plus les débutants perdus ...

n°519905
neo9205
Posté le 21-09-2003 à 18:43:51  profilanswer
 

Taz a écrit :

comment tu ferais pour :
 - passer un pointeur sur un pointeur ?
 - passer en paramètre un « tableau » de pointeurs ?
 
 
sauf cas précis, chachez la nature pointeuresque d'un type, surtout si on dispose de struct machin, c'est à dire définir pmachin, c'est très laid, on ne compte plus les débutants perdus ...


 
Est que ceci est un exemple de cas Précis ou l'on peut passer "un pointeur sur un pointeur" ?

Code :
  1. void swap(int *a,int *b);
  2. void main()
  3. {
  4. int a,b,*pa,*pb;
  5. a=3,b=5;
  6. pa=&a;
  7. pb=&b;
  8. swap(pa,pb);
  9. }
  10. void swap(int *x,int *y)
  11. {
  12. int *temp;
  13. *temp=*x;
  14. *x=*y;
  15. *y=*temp;
  16. }

n°519911
Taz
bisounours-codeur
Posté le 21-09-2003 à 18:49:15  profilanswer
 

ou tu vois un pointeur sur un pointeur ?

n°519926
neo9205
Posté le 21-09-2003 à 19:04:01  profilanswer
 

Taz a écrit :

ou tu vois un pointeur sur un pointeur ?


 
Eh bien...Dans le main(), tu as les pointeurs *pa et *pb, et dans les paramètres de la fonction, tu as int *x et int *y.
 
Donc tu passes par exemple l'adresse ou pointe pa dans le pointeur x c'est pas ça le résonnement ?
 
N.B : donc je passe bien un pointeur dans un pointeur,non ?


Message édité par neo9205 le 21-09-2003 à 19:04:52
n°519927
Taz
bisounours-codeur
Posté le 21-09-2003 à 19:07:01  profilanswer
 

ben non.là, je suis pas payé, mais ce que je disais à mes étudiants. on peut dire qu'un pointeur est un type comme un autre et par un artifice d'écriture
 
la synthaxe
 
<type> * identificateur;
 
 
donc
 
char** tab;
->
char* * tab;
-> pointeur de char*
-> char * * tab;
-> pointeur de pointeur de char

n°519957
SomeBugsIn​Me
life suxx
Posté le 21-09-2003 à 19:59:25  profilanswer
 

neo9205 a écrit :


 

Code :
  1. void swap(int *x,int *y)
  2. {
  3. int *temp;
  4. *temp=*x;
  5. *x=*y;
  6. *y=*temp;
  7. }




 
void swap(int *x, int *y)
{
  int temp = *x;
  *x = *y;
  *y = temp;
}

n°519961
neo9205
Posté le 21-09-2003 à 20:00:50  profilanswer
 

Taz a écrit :

ben non.là, je suis pas payé, mais ce que je disais à mes étudiants. on peut dire qu'un pointeur est un type comme un autre et par un artifice d'écriture
 
la synthaxe
 
<type> * identificateur;
 
 
donc
 
char** tab;
->
char* * tab;
-> pointeur de char*
-> char * * tab;
-> pointeur de pointeur de char
 


Je ne comprend pas ce que tu cherches à m'expliquer... :heink:  

n°519962
neo9205
Posté le 21-09-2003 à 20:03:26  profilanswer
 

SomeBugsInMe a écrit :


 
void swap(int *x, int *y)
{
  int temp = *x;
  *x = *y;
  *y = temp;
}
 


 
Ca change pas grand chose au résultat...

n°519964
Taz
bisounours-codeur
Posté le 21-09-2003 à 20:04:22  profilanswer
 

neo9205 a écrit :


 
Ca change pas grand chose au résultat...

:heink: ben l'un plante, l'autre fait bien la permutation

mood
Publicité
Posté le 21-09-2003 à 20:04:22  profilanswer
 

n°519968
neo9205
Posté le 21-09-2003 à 20:08:12  profilanswer
 

Taz a écrit :

:heink: ben l'un plante, l'autre fait bien la permutation


 
Justement non ça marche sans probleme dans les 2 cas


Message édité par neo9205 le 21-09-2003 à 20:08:53
n°519969
Taz
bisounours-codeur
Posté le 21-09-2003 à 20:08:55  profilanswer
 

neo9205 a écrit :


 
Justement non ça marche sans probleme dans les 2 cas

on parie combien ?

n°519970
neo9205
Posté le 21-09-2003 à 20:11:51  profilanswer
 

Taz a écrit :

on parie combien ?


 
Je viens d'essayer les 2 cas et la permutation est correcte,sans plantage  :D  
C'est peut etre car je suis sous Windobe avec visual C :??:


Message édité par neo9205 le 21-09-2003 à 20:12:14
n°519971
Taz
bisounours-codeur
Posté le 21-09-2003 à 20:12:27  profilanswer
 

Taz a écrit :

on parie combien ?

[:quoted]

n°519983
leneuf22
Posté le 21-09-2003 à 20:51:43  profilanswer
 

Code :
  1. int *temp;
  2.     *temp=*x;


 
Ya rien qui te gêne là, avant de te faire plumer ?
 
Si le bug vient pas à toi, va à lui :
 

Code :
  1. int *temp=NULL;
  2.     *temp=*x;


Message édité par leneuf22 le 21-09-2003 à 20:54:48
n°519986
Taz
bisounours-codeur
Posté le 21-09-2003 à 20:53:26  profilanswer
 

l'UB a des fois bon dos

n°520024
neo9205
Posté le 21-09-2003 à 21:39:03  profilanswer
 

leneuf22 a écrit :

Code :
  1. int *temp;
  2.     *temp=*x;


 
Ya rien qui te gêne là, avant de te faire plumer ?
 
Si le bug vient pas à toi, va à lui :
 

Code :
  1. int *temp=NULL;
  2.     *temp=*x;




 
Tu as raison, il faut prendre le taureau par les cornes et c'est ce que je vais essayer de faire   :jap:


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

  A Propos des passages de paramètre...

 

Sujets relatifs
Passer un paramètre vers un formulaire composé de 2 cadres[Résolu] Passage d'une fonction en paramètre ?!?
Besoin d'aide a propos d'un projetPorblème lors d'un passage de paramètre
[Divers] question a propos de prog et SMSPetit problème de compréhension dans un passage de paramètre...
[PHP] Demande d'infos à Propos de mysql_fetch_arrayQuestions a propos de l'authentification.
Paramètre dans URLPassage de paramètre et Frontpage
Plus de sujets relatifs à : A Propos des passages de paramètre...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)