Pointeurs dans le programme en C
Fermé
lili
-
1 juin 2020 à 11:33
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 10 juin 2020 à 11:14
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 10 juin 2020 à 11:14
A voir également:
- Pointeurs dans le programme en C
- Programme demarrage windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Programme démarrage windows 10 - Guide
- Ce message d'erreur apparaît sur l'ordinateur d'elena. que peut-on dire du programme gwxux ? - Forum logiciel systeme
- Desinstaller un programme - Guide
2 réponses
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
Modifié le 1 juin 2020 à 12:23
Modifié le 1 juin 2020 à 12:23
bonjour,
suggestion
suggestion
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
10 juin 2020 à 11:14
10 juin 2020 à 11:14
Bonjour lili,
Essentiellement, un pointeur en C est une variable, qui permet de stocker une adresse mémoire.
Une variable pointeur permet d'accéder indirectement au contenu vers lequel l'adresse qu'elle contient pointe. De ce fait, les pointeurs sont typés. Dans l'exemple ci-dessus,
Une autre utilisation commune des pointeurs est dans le cadre de l'allocation dynamique de mémoire avec
Dans l'exemple ci-dessus
Il y a d'autres finesses, mais ce sont les caractéristiques essentielles.
Dal
Essentiellement, un pointeur en C est une variable, qui permet de stocker une adresse mémoire.
int a = 10; int * b; b = &a; /* b contient maintenant l'adresse mémoire de la variable a */
Une variable pointeur permet d'accéder indirectement au contenu vers lequel l'adresse qu'elle contient pointe. De ce fait, les pointeurs sont typés. Dans l'exemple ci-dessus,
best déclaré comme une variable pointeur sur des données de type
int.
printf("Le contenu de a est : \n", *b);
Une autre utilisation commune des pointeurs est dans le cadre de l'allocation dynamique de mémoire avec
malloc(). La variable pointeur permet de stocker l'adresse de la zone mémoire réservée par
malloc(), d'accéder indirectement à son contenu, et de conserver cette adresse mémoire pour la fournir à
free()lorsqu'on voudra la libérer.
#include <stdio.h> #include <stdlib.h> int main (void) { int * dix_entiers; dix_entiers = malloc (sizeof(int) * 10); if (dix_entiers == NULL) { /* gérer l'erreur */ } else { for (int i = 0; i < 10; i++) dix_entiers[i] = i; printf("le 3ème élément est : %d\n", dix_entiers[2]); printf("le 3ème élément est : %d\n", *(dix_entiers + 2)); free (dix_entiers); } return 0; }
Dans l'exemple ci-dessus
*(dix_entiers + 2)illustre une autre utilisation des pointeurs qui est l'arithmétique de pointeurs. Cette expression signifie le contenu (de type
int) présent à l'adresse mémoire égale à celle contenue dans la variable
dix_entierset à laquelle on ajoute de 2 fois la taille d'un
int.
Il y a d'autres finesses, mais ce sont les caractéristiques essentielles.
Dal