begin process at 2008 07 20 23:05:53
1 213 505 membres
406 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pointeurs [ Archives / Au secours ] (Nykkoo)

Pointeurs le 11/10/2003 19:26:59

Nykkoo

Salut,

Etant debutant dans la programmation en C, j'arrive aux chapitres des pointeurs (sniff) et je me trouve confonté aux problemes suivants :

double ** pointeur;
est ce que cela signifie qu'un pointeur de type quelconque pointe sur un pointeur de type double?
quel en est l'interet?

ensuite je trouve :

void swap(double ** Val1, double**Val2)

peut on m'expliquer ce que cela signifie?
que vont recevoir les arguments de la fonction?
Merci d'avance
Nykoo


Re : Pointeurs le 11/10/2003 19:39:31

JCDjcd
double **pp

<pp> est un pointeur sur un pointeur sur un double.
le premier pointeur est "un pointeur sur double"
le second est "un pointeur sur pointeur"

En fait normalement ce n'est pas cet exemple que l'on prend, on n'utilise pas le pointeur sur pointeur.

swap(int *a,int *b)
{
int tmp; // temporaire
tmp = *a;
*a = *b;
*b = tmp;
}


voila un fonction utilisant les pointeurs. Et voila ton main :


int main(...)
{
...

// on suppose que c=10 et d=21
swap(&c,&d);
// maintenant c=21 et d=10


...
}




Cela marche que grace aux pointeurs

Re : Pointeurs le 11/10/2003 19:46:19

JCDjcd

http://www.cppfrance.com/code.aspx?ID=10571

Re : Pointeurs le 11/10/2003 20:22:44

Nykkoo
Re,

Merci pour ta aide.
Pour echanger des valeurs je pense avoir compris, cependant dans ce cas c'est un echange d'adresse, je te joins le prog au cas ou. La ou je bute, c'est le pointeur du pointeur...dans la fonction swap et dans l'init. Si tu as 30s pour m'eclairer merci bcp.


#include <stdio.h>
#include <stdlib.h>


void swapAdr (double ** pVal1, double ** pVal2);


int main()
{
double pi = 3.14;
double e = 2.7128;
double ** adpi;
double ** ade;
adpi = π
ade = &e;


printf ("avant : \n pi vaut %lf a l'adresse 0x%x \n e vaut %lf a l'adresse 0x%x \n", pi,*adpi,e ,*ade);
swapAdr(&adpi,&ade);

printf ("apres : \n pi vaut %lf a l'adresse 0x%x \n e vaut %lf a l'adresse 0x%x \n", pi,*adpi,e ,*ade);
return 0;


}

void swapAdr (double ** pVal1,double ** pVal2)

{

double * inter;

inter = *pVal1;
*pVal1 = * pVal2;
* pVal2= inter;

return ;
}

Re : Pointeurs le 11/10/2003 20:52:55

JCDjcd
C'est le meme principe :


Apres adpi est un pointeur sur le pointeur qui POINTAIT sur e
et reciproquement
Apres adpe est un pointeur sur le pointeur qui POINTAIT sur pi

ppPi -> pPi -> Pi //
ppE -> pE -> E // les -> representes les pointeurs

Apres coup :

ppPi -> pE ->E
ppE -> pPi -> Pi

Effectivement cela n'a pas un grand interet ici. Mais les pointeur sont PRIMORDIAL en langage C, c'est le plus important, c'est tellement puissant.


Classé sous : trouve, double, pointeurs, pointeur, signifie

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS