ca te permet par exemple, d'avoir une variable qui est le synonyme d'une autre, donc deux variables qui pointent vers la meme valeur.
Ensuite, c'est utilisé dans la tableau. Dans une fonction, au lieu de passer tout le tableau, on donne un pointeur vers le tableau (qui est naturellement beaucoup plus petit en taille).
Apres il y a des utilisateurs beaucoup plus complexe
Apres il y a des utilisateurs beaucoup plus complexe
Citons les pointeurs de fonctions, qui permettent de passer des fonctions en paramètres en encore de créer des tableaux de fonctions.
Les pointeurs sont aussi indispensables pour l'allocation dynamique de mémoire. C'est utilisé quand on ne connaît pas d'avance le nombre d'éléments à mettre dans un tableau. La mémoire allouée est décidée en cours d'exécution.
Une autre utilisation des pointeurs est la modification de plusieurs variables en même temps par une fonction. En effet, une fonction ne peut modifier les variables passées en paramètre car elle travaille en fait avec une copie locale de la variable. Une fois sortie de la fonction, la variable retrouve son ancienne valeur (qu'elle n'a techniquement jamais perdue).
Pour modifier plusieurs variables d'un coup, on n'a d'autre choix que de retourner une structure qui contient les différentes variables modifiées, mais ca fait un peu bricolage.
Une autre solution est de passer non pas des variables, mais des pointeurs vers des variables. Ces pointeurs ne peuvent pas être modifiée, mais ce qui est pointé par le pointeur bien! Cette technique a l'inconvénient de générer un effet de bord, ce qu'on ne souhaite pas généralement.
Le prochain chapitre sera justement sur les pointeurs. Il devrait être rendu public d'ici peu.
C'est un bol d'ailleurs, parce que j'ai toujours pas le net et j'ai du faire des pieds et des mains pour le rédiger celui-là !
Euh direct les pointeurs ? Et les tableaux et les chaînes de caractères ? oO
Notez qu'il existe deux types de pointeurs qui n'ont à voir que le concept : Les pointeurs sur fonctions et les pointeurs sur objets. Les deux ne se mélangent pas mais le concept au fond est le même.
Les tableaux et chaînes de caractères utilisent la notion de pointeur, j'ai trouvé plus logique de commencer par les pointeurs. Tu comprendras sûrement mieux mon raisonnement dans 2-3 chapitres, quand tout cela sera sorti
Note sur le tuto en lien : Pas mal d'erreurs :
#define EOF (-1) est moisi, *rien* ne garantie que ça vaut -1...
Puis
char c; (c = getchar()) != EOF
fera tout autre chose que ce qu'on peut naïvement penser.
De plus ils préconisent gets... -_-
int main(void) { int c, n; while((c = getchar()) != EOF) {
++n; } return0; }
Il faut déclarer c comme un int vu que EOF est un int. Et EOF est le caractère de fin de fichier, il s'obtient avec Ctrl + Z sous Windows. Reprennez moi si je me trompe
Oui je sais mais je viens de tester et le Ctrl+Z me fait bien mon EOF
Usages des pointeurs
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
If you'd like to join us, read "How do we work at OpenClassrooms"! :)