Skip to content
Snippets Groups Projects
Commit e3e378f7 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

maj de memory

parent 7e0f3863
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,7 @@ intro.pdf: intro.md *.theme ...@@ -18,7 +18,7 @@ intro.pdf: intro.md *.theme
base_1.pdf: base_1.md *.theme base_1.pdf: base_1.md *.theme
pandoc -t beamer -o $@ $< pandoc -t beamer -o $@ $<
base_2.pdf: base_2.md *.theme base_2.pdf: base_2.md *.theme figs/memory.svg
pandoc -t beamer -o $@ $< pandoc -t beamer -o $@ $<
index.html: index.md index.html: index.md
......
...@@ -2,11 +2,34 @@ ...@@ -2,11 +2,34 @@
% Base II - Inspirés des slides de F. Glück % Base II - Inspirés des slides de F. Glück
% 25 septembre 2019 % 25 septembre 2019
# Représentation des variables en mémoire # Représentation des variables en mémoire (1/N)
## La mémoire
- La mémoire est un ensemble de bits.
- Elle est accessible via des adresses.
+------+----------+----------+------+----------+------+------+
| bits | 00110101 | 10010000 | .... | 00110011 | .... | .... |
+======+==========+==========+======+==========+======+======+
| addr | 2000 | 2001 | .... | 4000 | .... | .... |
+------+----------+----------+------+----------+------+------+
- Elle est gérée par le système d'exploitation...
- et fournie à chaque programme pendant son exécution.
- Elle est séparée en deux parties: **la pile** et **le tas**.
## Une variable
- Une variable est un identifiant pour une valeur. - Une variable est un identifiant pour une valeur.
- - Une variable, `type a = valeur`{.C}, possède:
- un type (`char`{.C}, `int`{.C}, ...),
- un contenu (une séquence de bits qui encode `valeur`{.C}),
- une adresse mémoire (accessible via `&a`{.C}).
# Représentation des variables en mémoire (2/N)
![Les variables en mémoire.](figs/memory.svg){#fig:memory width=100%}
# Les fonctions (1/N) # Les fonctions (1/N)
...@@ -206,7 +229,8 @@ ERROR # si tout s'est mal passé ...@@ -206,7 +229,8 @@ ERROR # si tout s'est mal passé
float tab1[5]; // tableau de floats à 5 éléments float tab1[5]; // tableau de floats à 5 éléments
// ses valeurs sont indéfinies // ses valeurs sont indéfinies
int tab2[] = {1, 2, 3}; // tableau de 3 entiers, taille inférée int tab2[] = {1, 2, 3}; // tableau de 3 entiers,
// taille inférée
int val = tab2[1]; // val vaut 2 à présent int val = tab2[1]; // val vaut 2 à présent
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment