Pointeurs...

Messages postés
196
Date d'inscription
vendredi 21 décembre 2001
Statut
Membre
Dernière intervention
25 juillet 2006
- - Dernière réponse : Dorgendubal
Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002
- 3 juil. 2002 à 08:08
salut à vous tous...

QQ1 pourrait-il me préciser l'utilisations des pointeurs en C/C++ ?

Parce que j'ai lu des bouquins et je comprends la déclaration, l'initialisation , mais je vois pas bien a quoi ca sert, et surtout dans quel cas s'en servir ?

merci

bigbang
http://bigbang44.free.fr
Afficher la suite 

2 réponses

Messages postés
141
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
23 mars 2005
1
0
Merci
tu px t en servir pour passer des variables par adresses et non par valeur à une fonction ou à une procedure par exple
void main(void)
{
......
fonct(&var);
....
}
void fonct(type *ptrvar)
{
....
}

Chevalier Pheno Starboard, membre de la Freeman-Corp
Commenter la réponse de cs_pheno
Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002
0
Merci
Les pointeurs, ça sert à trois choses :

1)Utiliser un/plusieurs arguments d'un fonction comme "output" (ou à modifier) :

Par exemple, je veux initialiser deux variables :

void init(int *x, int *y)
{
*x = 0;
*y = 0;
}

int x,y;
init(&x,&y);

Note : si tu le fais sans pointeur, tu initialiseras des variables locales, ce qui n'aura aucun effet à l'extérieur de ta fonction.

2) Economiser du temps :
car un pointeur a tjrs une taille (sizeof) fixe (4Bytes je crois).

Exemple:
struct myStr {
long x,y,z;
double a,b,c;
...
} myS;

void foo1( myStr *str )
{
...
}

void foo2( myStr str )
{
....
}

void foo3( myStr &str)
{
}

le pointeur (4Bytes) est envoyé à la fonction foo1 alors que toute la structure (>36Bytes) est envoyée à la fonction foo2 ... donc une sérieuse économie de temps. La fonction foo3 revient à peu près au même que foo1.

3)Créer des tableaux dynamiques

Par exemple :
int *table;
table = (int*)malloc( n * sizeof(int));

plutôt que

int table[10]; (static)

Voilà ... j'espère que ça t'aidera.

Sven
Commenter la réponse de Dorgendubal