Vous êtes sur la page 1sur 12

U

IQ
AT
PR
&
UE

POINTEURS
Q
RI
ÉO
TH

- Notion d'espace mémoire et adresse mémoire


- C'est quoi un pointeur ?
- Obtenir l'adresse d'une variable
- Allouer/désallouer un espace mémoire (R.A.M.)

Réalisé par : OUZEGGANE Redouane


Département de Technologie
Faculté de Technologie – Université A.Mira, Bejaia
Année Universitaire 2015/2016
CHARGEMENT DU PROGRAMME

Chargé
Exécution

RAM
Données

Variables
Constantes

Instructions
Lectures
Affectations
Tests
Boucles

Ecritures

1ère Année Technologie Année Universitaire


01/11 : 2015/2016
VARIABLES - RAM
RAM

RAM
Données
. X : integer;
.

Variables . .
X := 25;
Constantes . (00011001)2
Instructions Une Variable possède : .
- Une valeur (19)16 = 0x19
Lectures - Une adresse 0x0004
Affectations - Une taille mémoire (en Octet)
Tests 0x0003
Boucles
… 0x0002
Ecritures 0x00 0x0001
X
0x19 0x0000

1ère Année Technologie Année Universitaire


02/11 : 2015/2016
C’EST QUOI UN POINTEUR ?

Pointeur
0x0000

25

Un Pointeur est une variable qui contient l’adresse d’une


autre variable (ou un espace mémoire).
Un Pointeur pointe sur la variable pointée
Un pointeur « Fait une référence » à un autre objet (Variable /
espace mémoire)

1ère Année Technologie Année Universitaire


03/11 : 2015/2016
DÉCLARER UN POINTEUR
Déclarer un pointeur
En Algorithme
Variables
<id_variable> : ^<Type>

En Pascal
Var
<id_variable> : ^<Type>;

Déclaration d’un Pointeur - Exemple


En Algorithme En Pascal
Variables Var
P : ^Entier P : ^Integer;

1ère Année Technologie Année Universitaire


04/11 : 2015/2016
OBTENIR L’ADRESSE D’UNE VARIABLE
Obtenir l’adresse d’une variable - Exemple

En Algorithme En Pascal
Variables Var
P : ^Entier P : ^Integer;
X : Entier X : Integer;

... ...
... ...
... ...

P  @X P := @X
P
0x00011001 X
?

1ère Année Technologie Année Universitaire


05/11 : 2015/2016
OBTENIR L’ADRESSE D’UNE VARIABLE
Accéder à la variable pointée par le pointeur - Exemple

En Algorithme En Pascal
Variables Var
P : ^Entier P : ^Integer;
X : Entier X : Integer;

... ...
P  @X P := @X;

p^  25 p^ := 25;

P
0x00011001 X
25

1ère Année Technologie Année Universitaire


06/11 : 2015/2016
EXEMPLE DE POINTEUR AVEC RÉFÉRENCE
Pointeur vers
La valeur X est 55
entier

Affecter
l’adresse de
X à P.

Affecter 55 à
la variable
pointée par P
(C-A-D X)

1ère Année Technologie Année Universitaire


07/11 : 2015/2016
ALLOCATION DYNAMIQUE DE LA MÉMOIRE

RAM RAM

Données
P
P : ^Integer Adresse
/

Instructions
New (P);
15
?
P^ := 15;

Dispose (P);
P := nil;

1ère Année Technologie Année Universitaire


08/11 : 2015/2016
OU UTILISER LES POINTEURS ?

Pointeurs

Référence de Paramètres des Structure de données :


Sous-Programmes (Foncions / - Listes chaînées
Procédures) - Listes doublement C.
- Piles – Files
- Arbres
-…

1ère Année Technologie Année Universitaire


09/11 : 2015/2016
RÉSUMÉ
 Un pointeur est une variable qui contient une adresse d’un
autre objet (Variable / Espace Mémoire)

 Un pointeur pointe vers une variable pointée.

 On dit qu’un pointeur « Fait référence » vers une autre


variable/espace mémoire référencée.

 Les pointeurs sont utilisés pour les structure de données


(Listes chaînés, doublement-chainées, les piles, les files, les
arbres …)

1ère Année Technologie Année Universitaire


10/11 : 2015/2016
DÉMONSTRATION

 Réaliser un programme PASCAL qui permet d’allouer


dynamiquement un espace mémoire pour une variable
entier.

 Réaliser un programme PASCAL qui permet de


réaliser un passage de paramètre par Adresse (Pointeur)
dans la procédure Factoriel ?

1ère Année Technologie Année Universitaire


11/11 : 2015/2016