diff --git a/run.c b/run.c
index 7c279fe4d7f23920aee61bc092e0bb63c0e62037..c6ad6452f0e3f90eafe97a53a093825648d30bc1 100755
--- a/run.c
+++ b/run.c
@@ -122,16 +122,17 @@ int is_prime(unsigned long long number) { // Vérifie si number est un nombre pr
 
 void enqueue(queue_t* q, unsigned long long val){ 
 
-    struct node new_node;
-    new_node.value = val;
-    new_node.next = malloc(sizeof(node_t));
-
     struct node *ptr;
     ptr = malloc(sizeof(node_t));
     if (ptr == NULL){
         free(ptr);
         return;}
-    *ptr = new_node;
+    ptr->value = val;
+    ptr->next = malloc(sizeof(node_t));
+    if (ptr->next == NULL){
+        free(ptr);
+        return;
+    }
 
     if (q->size == 0)
     {
@@ -143,9 +144,6 @@ void enqueue(queue_t* q, unsigned long long val){
         *q->tail->next = *ptr;
     }
     q->size++;
-    
-    //free(ptr->next);
-    free(ptr);
 
 }