« Structures de données/Pointeurs » : différence entre les versions

Aller à la navigation Aller à la recherche
m (→‎Les pointeurs génériques : suppression de précisions inutiles dans les sous-titres)
Nous avons donc une mémoire dont l'adresse de chaque octect est codée sur un octect, ce qui nous fait 256 cases numérotées de 0 à 255, 00 à FF en [[w:hexadécimal|hexadécimal]] (qu'on utilisera pour numéroter les cases mémoires)
 
[[Image:StructDonnees_Memoires_vierge.svg]]
''schéma de la mémoire''
 
Que se passe-t-il quand on exécute un programme P ? Et bien le système d'exploitation qui exécute P va allouer au programme autant de place que nécessaire dans cette mémoire statique pour que toutes les variables du lexique du P puisse y être stockées. Les cases ainsi réservées seront sur fond gris.
 
=== Exemple ===
Exemple avec le programme suivant : il s'agit de l'algorithme [[Algorithmique impérative/Inversion de deux variables|inversion de deux variables]] étudié en [[algorithmique impérative]]) :
 
Exemple avecAvec le programme suivant : il s'agit de l'algorithme [[Algorithmique impérative/Inversion de deux variables|inversion de deux variables]] étudié en [[algorithmique impérative]]) :
 
Algorithme inversion_calcul
...
 
Voici à quoi ressemble notre mémoire statique si notre machine code les entiers sur un octet (une case mémoire). Schéma de la mémoire avec deux cases <code>a</code> et <code>b</code> réservées :
 
[[Image:StructDonnees_Memoires_inversion_calcul.svg]]
''schéma de la mémoire avec deux cases <code>a</code> et <code>b</code> réservées''
 
À chaque assignation d'une variable, on affecte le contenu de la case mémoire dont l'adresse est contenu dans la variable. L'identifiant de la variable est en fait une abstraction, derrrière l'identifiant d'une variable se cache l'adresse mémoire de son contenu.

Menu de navigation