Pointeurs dans le programme en C
Fermé
lili
-
1 juin 2020 à 11:33
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 10 juin 2020 à 11:14
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 10 juin 2020 à 11:14
A voir également:
- Pointeurs dans le programme en C
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Frequence programme national ✓ - Forum Messagerie
- Programme demarrage windows 10 - Guide
- Fichier ouvert dans un autre programme - Guide
- Programme bonjour ✓ - Forum Windows
2 réponses
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
Modifié le 1 juin 2020 à 12:23
Modifié le 1 juin 2020 à 12:23
bonjour,
suggestion
suggestion
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
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