diff --git a/Exercices/Programmes/prog-4.rst b/Exercices/Programmes/prog-4.rst
index 7df939f744afbacf7ce1e9b11450c052a8991734..62b829b89e4920ca12f08dc4d8b99abfecd779b9 100644
--- a/Exercices/Programmes/prog-4.rst
+++ b/Exercices/Programmes/prog-4.rst
@@ -149,3 +149,25 @@ Exercices
 
      #. Vous trouverez également sur INGInious plusieurs exemples de questions typiques sur l'assembleur à l'examen. Ces questions portent sur la traduction d'un code assembleur dans son équivalent en C. `Première question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm1>`_, `deuxième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm2>`_, `troisième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm3>`_ et `quatrième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm4>`_ .
 
+
+Question de bilan final
+=======================
+
+Considérez le programme suivant.
+
+	.. literalinclude:: src/s4_qbf.c
+                :encoding: utf-8
+                :language: c
+
+* Dessinez le schéma de l'organisation mémoire du programme. Identifiez dessus où se trouvent toutes les variables présentes dans le programme.
+* Pour chaque ligne du programme, indiquez quelles zones mémoires sont accédées et leur contenu après exécution.
+
+.. only:: staff
+
+	Cette question est importante à réaliser, n'hésitez pas à y passer une bonne demi-heure. Insistez pour commencer à dessiner le schema au tableau et que les étudiants interagissent directement dessus.
+
+	Dans la section code: f, main.
+	Dans la section initialisée: cours et 97850 (insistez sur ce dernier!).
+	Dans la section heap: la zone mémoire pointée par tab.
+	Dans la stack (à des niveaux différents): d, tab, res, c, x. Notez que les arguments des fonctions sont aussi mis sur la stack (y compris a, b, argc et argv), mais insistez là-dessus lors de l'exécution du programme.
+	Dans la zone param/env: le contenu de argv.
\ No newline at end of file
diff --git a/Exercices/Programmes/src/s4_qbf.c b/Exercices/Programmes/src/s4_qbf.c
new file mode 100644
index 0000000000000000000000000000000000000000..6927794b4b2ca2736f9801ebdd041cf079c0fac6
--- /dev/null
+++ b/Exercices/Programmes/src/s4_qbf.c
@@ -0,0 +1,18 @@
+#include <stdlib.h>
+
+int cours = 1252;
+
+int f(int *a, int b) {
+	int c = 97850**a + b;
+	int x = 2052;
+	*a = x * c;
+	return c;
+}
+
+int main(int argc, char *argv[]) {
+	int d = 42;
+	char *tab = malloc(20 * sizeof(char));
+	int *res = (int *) tab;
+	*tab = f(&cours, d);
+	return 0;
+}