Académique Documents
Professionnel Documents
Culture Documents
Chapitre 3:
Les pointeurs
1
LES POINTEURS
o Un pointeur est une variable dont le contenu a pour valeur une adresse en mémoire.
Fonction d’allocation:
fonction alloue (in nb : entier, in typeElem : Type) : ret pointeur sur typeElem
Mémoire
Pointeur p
@
DÉSALLOCATION
Lorsque un emplacement dynamique n’est plus utile, il faut le désallouer de façon à économiser la mémoire
Exemple :
Mémoire
Pointeur p
EXEMPLE
nb lire
si nb > 0 alors
tab alloue(nb,entier)
si tab Nil alors
… tab[ind] …// utilisation de tab comme un tableau classique à nb
//éléments
libère(tab) // libération du tableau dynamique après son utilisation
tab Nil // réinitialisation du pointeur pour la suite de l’algo
fsi
fsi
…
Chapitre 3:
Les pointeurs avec le langage C
LES POINTEURS
void main(void)
{
int V1, *P1; /* 01 */
int *P2, V2; /* 02 */
/* 03 */
P1 = &V1; /* 04 */
P2 = &V2; /* 05 */
/* 06 */
V1 = 100; /* 07 */
V2 = *P1 + 5; /* 08 */
printf(“V1=%d et V2=%d", V1, V2 );
}
LES POINTEURS
Nombre1 = 666;
PtrNbr = &Nombre1; //adresse
Ref1Emp = &Employe1;
Ref2Emp = &Employe2
RefEmp1->Age = 2 * (*RefEmp2).Age;
GESTION STATIQUE ET DYNAMIQUE DE LA
MÉMOIRE
Avec les fonctions malloc et free, il est possible de faire soi même la gestion de la mémoire au moment opportun –
c’est ce qu’on appel la gestion dynamique de la mémoire.
int TableauStatique[3] = { 0, 1, 2 };
int *TableauDynamique = (int*) malloc(sizeof(int) * 3);
- 0x30CA
const int* int*
TableauStatique TableauDynamique
0x1000 0x2000