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 : Debutant - Pointeurs [ Archives / Au secours ] (DeltaX)

lundi 12 septembre 2005 à 15:53:23 | Debutant - Pointeurs

DeltaX

Bonjour.
Je débute en programmation(je commence par le C) et, et même si je sais à peu près comment ils fonctionnent(déclaration...), j'ai du mal à voir à quoi peuvent bien servir les pointeurs  Quelqu'un peut-il me montrer, dans son explication, un exemple qui montre clairement ce que les pointeurs font? Il parait d'ailleurs qu'ils sont plutôt importants alors j'aimerais bien comprendre quand il faut les utilier.

lundi 12 septembre 2005 à 16:15:39 | Re : Debutant - Pointeurs

buno

Réponse acceptée !
Le pointeur "pointe" (comme son nom l'indique) sur une case mémoire. ça te permet donc d'avoir accès à cette case assez rapidement.
C'est très utile dans le cas de passage de paramètres d'une fonction, notamment dans le cas de paramètres "volumineux".

Un exemple: tu travailles sur des images (tableau à 2 dimensions) de 1024x1024. Dans la fonction CalculRouge(), tu dois compter le nombre de pixels rouges. tu as donc, en schématisant, 2 prototypes possibles:
CalculRouge(Matrice Image);
 --> Une copie de la matrice est passée à la fonction, donc il y a 1024x1024x3 éléments à copier
CalculRouge(Matrice * Image);
 --> Seul le pointeur de début de matrice est passé, tu as donc gagné du temps et de l'espace mémoire

J'espère que cet exemple t'a éclairé...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...

lundi 12 septembre 2005 à 16:16:41 | Re : Debutant - Pointeurs

BruNews

Administrateur CodeS-SourceS
void ChangeAparB(char *psz)
{
  char *c = psz;
  while(*c) {
    if(*c == 'A') *c = 'B';
    c++;
  }
}

Un pointeur référence une adresse, on peut donc accéder à la mémoire avec un pointeur et modifier ce qui s'y trouve.

ciao...
BruNews, MVP VC++

lundi 12 septembre 2005 à 17:11:44 | Re : Debutant - Pointeurs

DeltaX

Merci.
Donc le pointeur ne sert "que" là où il y a nécessité d'aller plus vite-il doit y avoir de nombreux cas où cela est nécessaire, ne nous méprenons pas ce n'est pas ce que je veux dire..-? Il sert pour accélérer le déroulement du programme et diminuer le nombre de calculs effectués par le processeur?
Donc, un programme peut se passer entièrement de pointeurs, au risque d'être bien plus lent qu'une version où presque chaque variable sera appelée par un pointeur pointant au début de l'espace mémoire alloué à cette variable?

lundi 12 septembre 2005 à 17:32:49 | Re : Debutant - Pointeurs

BruNews

Administrateur CodeS-SourceS
absolument non, un pointeur est valable si on doit recevoir l'adresse mais pas dans les autres cas sinon on doit déréférencer pour obtenir la valeur et alors perte de cycles pour rien.

ciao...
BruNews, MVP VC++

lundi 12 septembre 2005 à 17:42:04 | Re : Debutant - Pointeurs

DeltaX

Alors là, BruNews, pour le coup, c'est allé très vite! tu parle de déréférencement et de cycle quand je je sais pas du tout(mais alors pas du tout...) de quoi il s'agit...
Plus de présicison peut-être, c'était pas très clair...
Je t'en remercierai.

lundi 12 septembre 2005 à 17:57:25 | Re : Debutant - Pointeurs

BruNews

Administrateur CodeS-SourceS
int maMultipliPar5(int v)
{
  return (v * 5);
}

ici (pas très utile mais simple exemple) si on passait un pointeur, serait:
return (*v * 5);

faudrait lire le pointeur sur pile comme tout param et ensuite relire ce qui est pointé à cette adresse, 2 accès mémoire au lieu d'1 seul.

ciao...
BruNews, MVP VC++



Cette discussion est classé dans : debutant, pointeurs


Répondre à ce message

Sujets en rapport avec ce message

c++ pointeur pour debutant [ par blastmanu ] Bonjour a tous et a toutes !!!Voila je debute dans la programmation et en particulier C++ et je galere un peu avec les pointeurs, l Classe C++ et pointeurs [ par cybermax62 ] je veux utiliser des pointeurs sur des classes. j'écris mon code comme celui-ci :typedef class widget * pwidget;class widget{public:; char * name_s; classes et opérations sur des pointeurs [ par cybermax62 ] j'utilise dans un code plusieurs types de pointeurs. je les utilise tous dans différentes classes C++,qui apellent des fonctions et classes. bref, le Info sur les pointeurs [ par HCJarod ] slt, je me demande pourquoi on ne peut pas ecrire (ou c'est mon compilo qui merde)char tab[50];....tab++alors qu'avecchar* tab=new char[50]; oui.techn debutant [ par 974Mr_007 ] salutje suis debutant et je voulais savoir si vous avez un tuto pour debuter en c++.netmerci davance++Ey@Z pointeurs de tableau [ par _Jonathan ] salut a tousje cherche a lire dans un fichier (sa, sa va...) chaques lignes et les stocker dans un tableau.ex : *Tableau[];.........printf("texte 1 : pb pointeurs [ par Arnaud16022 ] bonsoirj'ai un peu de mal avec les pointeurs et ma fonction marche pas trop.Le but est de passer une variable en parametre a une fonction, qui va stoc debutant en openGL... [ par dletozeun ] bonjour,J'ai remarqué qu'avec opengl on peut deplacer le repere avec glTranslatef() ce qui est tres pratique....Mais j'ai remarqué aussi qu'avec glRot question de debutant [ par Kernel ] SalutlpBuffers est un pointeur sur un tableau de structures chacune de ces structures contient un pointeur sur un buffer et la longueur de ce buffeurl Remplir tableau d'enters (debutant) [ par kanagan ] Bonjour,alors voilà j'ai une petite fonction qui convertit un nombre base 10 en un nombre base 2 et qui m'affiche ce résultat par un printf.Seulement


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.