diff --git a/Exercices/mcq-ex/qcm-3.rst b/Exercices/mcq-ex/qcm-3.rst
index 111276317eef56e4c1c6c266c17d51a956b828b0..5d7ae8070159b89bc7567b70d2f9b869f8921860 100644
--- a/Exercices/mcq-ex/qcm-3.rst
+++ b/Exercices/mcq-ex/qcm-3.rst
@@ -231,14 +231,14 @@ Considérons le fragment de programme ci-dessous.
 Question 4. Initialisation des variables
 ----------------------------------------
 
-En C, une règle de bonne pratique est d'initialiser toutes les variables avant leur utilisation. Utiliser une variable qui n'a pas été correctement initialisée pour être une source de problèmes. Un étudiant a écrit les déclarations ci-dessous :
+En C, une règle de bonne pratique est d'initialiser toutes les variables avant leur utilisation. Utiliser une variable qui n'a pas été correctement initialisée peut être une source de problèmes. Un étudiant a écrit les déclarations ci-dessous :
 
  .. code-block:: c
 
     int k=0;
     int i;
     short j;
-    float f;
+    float f=0.0;
     double d;
     char c[10];
     char* string;
@@ -255,57 +255,59 @@ En C, une règle de bonne pratique est d'initialiser toutes les variables avant
    .. positive::
 
 
-      - la variable ``i`` est initialisée à  la valeur ``0``
-      - le pointeur ``string`` est initialisé à la valeur ``NULL``
-      - ``c[2]`` contient le caractère ``'\0'``
-      -  Après exécution de ``malloc``, le contenu de l'adresse ``ptr+1`` est indéterminé
+      - la variable ``k`` est initialisée à  la valeur ``0``
+      - la variable ``f`` est initialisé à la valeur ``0``
+      - la variable ``ptr`` est stockée sur la pile
+      - Après exécution de ``malloc``, le contenu de l'adresse ``ptr+1`` est indéterminé
 
       .. comment:: Pour des raisons d'efficacité, `malloc(3)`_ n'initialise pas à zéro les zones mémoires allouées, contrairement à `calloc(3)`_
 
    .. positive::
 
 
-      - la variable ``j`` est initialisée à  la valeur ``0``
-      - le pointeur ``v`` est initialisé à la valeur ``NULL``
-      - ``c[4]`` contient le caractère ``'\0'``
-      - Après exécution de ``malloc``, le contenu de l'adresse ``ptr+4`` est indéterminé
+      - la variable ``d`` contient une valeur indéterminée
+      - le pointeur ``v`` contient une valeur indéterminée
+      - ``c[9]`` va faire un accès mémoire sur la pile
+      - Après une exécution réussie de ``malloc``, le contenu de ``ptr`` est une adresse sur le tas 
 
-      .. comment:: Pour des raisons d'efficacité, `malloc(3)`_ n'initialise pas à zéro les zones mémoires allouées, contrairement à `calloc(3)`_
+      .. comment:: Le contenu de ``c`` est stocké sur la pile 
 
    .. negative::
 
 
-      - la variable ``f`` est initialisée à  la valeur ``0.0``
-      - le pointeur ``string`` n'a aucune valeur et n'est pas utilisable
+      - la variable ``f`` est initialisée à la valeur ``0.0``
+      - le pointeur ``string`` n'est pas utilisable
       - ``c[2]`` contient le caractère espace
       - Après exécution de ``malloc``, l'adresse ``ptr+1`` contient le caractère ``'\0'``
 
-      .. comment:: `malloc(3)`_ n'initialise pas la zone mémoire allouée. ``string`` contient ``NULL`` et ``c[2]`` le caractère ``'\0'``
+      .. comment:: `malloc(3)`_ n'initialise pas la zone mémoire allouée. Le contenu de ``c`` est indéfini
 
    .. negative::
 
 
       - la variable ``f`` est initialisée à  la valeur ``0.0``
       - le pointeur ``v`` n'a aucune valeur et n'est pas utilisable
-      - ``c[2]`` contient le caractère espace
+      - ``c[2]`` contient le caractère ``'\0'``
       - Après exécution de ``malloc``, l'adresse ``ptr`` contient le caractère ``'\0'``
 
+      .. comment:: `malloc(3)`_ n'initialise pas la zone mémoire allouée. Le contenu de ``c`` est indéfini
+
    .. negative::
 
 
       - la variable ``f`` est initialisée à  la valeur ``0.0``
-      - le pointeur ``string`` est initialisé à ``NULL``
-      - ``c[10]`` contient le caractère espace
-      - Après exécution de ``malloc``, l'adresse ``ptr+3`` contient le caractère ``'\0'``
+      - la variable ``j`` contient une valeur indéterminée
+      - le pointeur ``string`` contient une valuer indéterminée
+      - Après une exécution réussie de ``malloc``, le contenu de ``ptr`` est une adresse sur la pile 
 
-      .. comment:: ``c[10]`` est hors du tableau ``c``. `malloc(3)`_ n'initialise pas la zone mémoire allouée.
+      .. comment:: `malloc(3)`_ n'initialise pas de zone mémoire sur la pile.
 
    .. negative::
 
 
       - la variable ``f`` est initialisée à  la valeur ``0.0``
-      - le pointeur ``v`` est initialisé à ``NULL``
-      - ``c[6]`` contient le caractère ``'\0'``
+      - la variable ``i`` contient une valeur indéterminée
+      - la variable ``d`` contient une valeur indéterminée
       - Après exécution de ``malloc``, l'adresse ``ptr+5`` contient le caractère ``'\0'``
 
       .. comment:: `malloc(3)`_ n'initialise pas la zone mémoire allouée. De plus, ``ptr+5`` se trouve en dehors de la zone mémoire allouée par `malloc(3)`_