Pointeurs dans le programme en C
Fermé
lili
-
1 juin 2020 à 11:33
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 10 juin 2020 à 11:14
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 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
- Désinstaller programme windows 10 - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
2 réponses
yg_be
Messages postés
23395
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 décembre 2024
Ambassadeur
1 556
Modifié le 1 juin 2020 à 12:23
Modifié le 1 juin 2020 à 12:23
bonjour,
suggestion
suggestion
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
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