logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» [C/C++] pointeurs
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [C/C++] pointeurs  (Lu 4695 fois)
comtezero

Profil challenge

Classement : 2120/54316

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« le: 01 Octobre 2005 à 17:08:25 »

Une question que je me pose, a quoi peuvent bien servir les pointeurs en c/c++, si ca simplifie ou autre les programmes ?
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Nox
Profil challenge

non classé(e).

Membre Complet
***
Hors ligne Hors ligne
Messages: 142


Voir le profil
« #1 le: 01 Octobre 2005 à 18:05:42 »

Les pointeurs servent a reserver un espace memoire pour des données

lorsque tu creer une variable les données contenu forment un tableau

chaque case du tableau et mise sur la pile

lorsque tu utilise un pointeur au lieu de mettre chaque lettre par exemple les une a la suite des autre le pointeur contiendra tout le texte ce qui augmente la vitesse de traitement

Pile N°1                       Pile N°2

B                                Bonjour
o                                Maurice                       Seulement deux traitement pour la pile 2
n
j
o
u
r
\n
M
a
u
r
i
c
e
\n
Journalisée

<-< Nox | Kernox >->

www.Kernox.ze.cx
comtezero

Profil challenge

Classement : 2120/54316

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #2 le: 01 Octobre 2005 à 18:19:26 »

Ok je vois on gagne du temps de traitements, apres c'est aussi facile a faire des programmes sur les pointeurs que sur les tableaux "normaux" ?
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Nox
Profil challenge

non classé(e).

Membre Complet
***
Hors ligne Hors ligne
Messages: 142


Voir le profil
« #3 le: 01 Octobre 2005 à 18:48:17 »

Tu peux faire un tableau sur un pointeur aussi

Dans certain cas tu es obligé d'utiliser de pointeurs parce que la fonction le demande

Bien sur mon schema etait trés simplifié mais en gros c'est ça
Journalisée

<-< Nox | Kernox >->

www.Kernox.ze.cx
comtezero

Profil challenge

Classement : 2120/54316

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #4 le: 01 Octobre 2005 à 20:01:48 »

Ok merci deja ca m'éclaire sur l'utilité du popinteur car deja je trouvais que ca rendais un script plus complexe au niveau de l'écriture et j'en voyais pas l'utilité.:oops
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
Invit
Invité
« #5 le: 02 Octobre 2005 à 15:36:54 »

Arrff... L'informatique ça se résume à ça, des pointeurs et des valeurs.
Un pointeur c'est une adresse mémoire (symbolisée par une variable), une valeur c'est une valeur (peu pas faire mieux là...)
Et la totalité de l'informatique se résume à ça (bon bon ok... interruptions et entrées/sorties mises à part :p).
Journalisée
neoflo
Profil challenge

Classement : 8124/54316

Membre Complet
***
Hors ligne Hors ligne
Messages: 171


Voir le profil WWW
« #6 le: 11 Décembre 2005 à 12:18:13 »

Si tu définis une structure, par exemple d'un type image et un type couleur style:

typedef Couleur_ struct {
  int R; int G; int B; int T;
  } Couleur;

typedef Image_ sruct {
   int hauteur;
   int largeur;
   Couleur **m (ou Couleur* m)
} Image;

Dejà, si ds ta structure tu voulais utiliser un tableau, tu serais obligé de définir la taille du style Couleur m[256][256] et donc tu serais limité, et si l'on déclare un tableau comme ça, on ne peut plus redimensionner l'image. Donc, tu dois utiliser un pointeur de pointeur.

Ensuite, si tu veux utiliser une fonction qui par exemple réalise un gauffrage ou une rotation de ton image.
Et bien si tu lui envois la structure ds la gueule, ta pile va déborder. Encore là, on travaille avec un pointeur de type Couleur, dc ça ne devrait pas trop être grave, mais si ta fonction renvoit une image, et bien là, à coup sûr, ça va planter si tu ne fais pas d'allocation dynamique.

NB: Sous linux, si vous voulez voir la taille de votre pile (CAD ce qu'il n faut pas dépasser), il suffit de tapper ulimit -a et lire la ligne stack size

Par exemple, si tu fais une alloc dynamique, tu vas avoir un prototype du style:
Image * Rotation(Image* source, int angle);
Et là, ça sera bcp plus rapide car le passage des paramètres se fera avec 2 pointeurs d'image et d'un entier.

Alors que si tu fais:
Image Rotation(Image source, int angle)
Il va y avoir un recopiage des données sur la pile = perte de tps et risque de plantage
Journalisée

Pages: [1]
  Imprimer  
 
Aller à: