A voir également:
- Pointeurs dans le programme en C
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
- Forcer la fermeture d'un programme - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 583
bonjour,
suggestion
suggestion
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